当前位置: 首页 > 编程语言 > C#

“'-'字符,十六进制值0x3A,不能包含在名称中“share

时间:2023-04-10 23:28:12 C#

”':'字符,十六进制值0x3A,不能包含在名称中”我有一个代码可以读取一些xml文件。我尝试了不同的方法来解决这个问题,但没有成功。我也试过这样编码:Namespacemy="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30";XElementmyEgitimBilgileri=XDocument.Load(@"C:25036077.xml").Element("my:"+"Egitim_Bilgileri");但一直都是同样的错误。原文如下:if(myEgitimBilgileri!=null){foreach(XElementinmyEgitimBilgileri.Elements()){Console.WriteLine("Name:{0}tValue:{1}",element.Name,element.Value.Trim());}}Console.Read();这是我的xml文件的路径:这是我在XMLxmlns中的命名空间的路径:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30"xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2008-01-23T00:43:17"代码元素("my:"+"Egitim_Bilgileri")与元素(“my:Egitim_Bilgileri”),后者表示默认命名空间中名为“my:Egitim_Bilgileri”的元素(字符串被隐式转换为XName)。但是,:element名称(在命名空间定界符之外)无效,因此会导致运行时异常。相反,代码应该是Element(my+"Egitim_Bilgileri"),其中my是XNamespace对象。当给定一个字符串作为第二个操作数时,XNamespace对象的+运算符会生成一个XName对象,然后可以将其与Element(XName)方法一起使用。例如:XNamespacemy="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30";XDocumentdoc=XDocument.Load(@"C:25036077.xml");//下面的变量/赋值可以省略,//它是为了显示XNamespace的+运算符以及它如何产生XNameXNamenodeName=my+"Egitim_Bilgileri";XElementmyEgitimBilgileri=doc.Element(nodeName);愉快的编码...和不得不处理InfoPath的哀悼:)在大多数情况下,我更喜欢使用XPath。除其他事项外,它允许轻松选择嵌套节点,并避免必须使用每个“检查空值”级别所需的node.Element(x).Element(y)构造。以上就是C#学习教程的全部内容:“':'字符,十六进制值为0x3A,名称中不能包含”。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——usingSystem.Xml.XPath;//对于XPathSelectElement扩展方法XmlNamespaceManagerns=newXmlNamespaceManager(newNameTable());ns.AddNamespace("my","http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30")//注意没有XName对象。相反,XPath字符串被解析//并且名称空间解析通过XmlNamespaceManagerXElementmyEgitimBilgileri=doc.XPathSelectElement("/my:myFields/my:Egitim_Bilgileri",ns);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: