简体   繁体   中英

The ':' character, hexadecimal value 0x3A, cannot be included in a name

I have an xml file that contains its element like

<ab:test>Str</ab:test>  

When I am trying to access it using the code:

XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();

It's giving me this error:

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Xml.XmlException: The ':' character, hexadecimal value 0x3A, cannot be included in a name.

How should I access it?

If you want to use namespaces, LINQ to XML makes that really easy:

XNamespace ab = "http://whatever-the-url-is";
XElement tempElement = doc.Descendants(ab + "test").FirstOrDefault();

Look for an xmlns:ab=... section in your document to find out which namespace URI "ab" refers to.

尝试将您的命名空间放在{ ... }如下所示:

string xfaNamespace = "{http://www.xfa.org/schema/xfa-template/2.6/}";

I was having the same error. I found I was adding code...

var ab = "http://whatever-the-url-is";

... but ab was determined to be a string. This caused the error reported by OP. Instead of using the VAR keyword, I used the actual data type XNamespace...

XNamespace ab = "http://whatever-the-url-is";

... and the problem went away.

There is an overload of the Get method you might want to try that takes into account the namespace. Try this:

XElement tempElement = doc.Descendants(XName.Get("test", "ab")).FirstOrDefault();

尝试从文档中获取命名空间

var ns = doc.Root.Name.Namespace;

删除AndroidManifest.xmlAndroidManifest.xml.DISABLED对我AndroidManifest.xml.DISABLED

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM