gpt4 book ai didi

c# - 读取 XML 和未声明的命名空间

转载 作者:行者123 更新时间:2023-11-30 20:52:56 25 4
gpt4 key购买 nike

当我尝试读取 XML 文件时收到此错误消息

 Unhandled Exception: System.Xml.XmlException: 'xi' is an undeclared namespace. Line 12, position 18.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg, Int32 lineNo, Int32 linePos)
at System.Xml.XmlTextReaderImpl.LookupNamespace(NodeData node)
at System.Xml.XmlTextReaderImpl.ElementNamespaceLookup()
at System.Xml.XmlTextReaderImpl.ParseAttributes()
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()

读取XML的代码:

   XmlTextReader reader = new XmlTextReader("file.xml");
while (reader.Read())
{
// Do some work here on the data.
Console.WriteLine(reader.Name);
}
Console.ReadLine();

xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>    
<doh>
<!-- Available Resources-->
<servers>
<xi:include href="file.xml"/>
</servers>

最佳答案

我假设您想要使用 XInclude。您必须定义 xi 前缀映射到哪个命名空间。最简单的原因是在根元素中也包含命名空间映射。

  <doh xmlns:xi="http://www.w3.org/2001/XInclude">

请注意,XmlTextReader 不会包含“file.xml”。您将不得不通过其他一些代码“包含”。可以在 MSDN 上的 http://msdn.microsoft.com/en-us/library/aa302291.aspx 找到关于 XInclude 的优秀背景文件。

关于c# - 读取 XML 和未声明的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com