尝试读取XMLfile时收到此错误消息
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和未声明的 namespace ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20388132/