我无法使用默认命名空间解析XML文档。
如果我从XML文件中删除命名空间xmlns="http://java.sun.com/xml/ns/j2ee
,那么我可以在nodelist中获取值。我不想使用Linq。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<display-name>Test - My tomcat webapp</display-name>
</web-app>
C#代码:
String strFileUsers = @"E:\\Dot_net\\XML_Parser\\demo\\web_org.xml";
XmlDocument docUsers = new XmlDocument();
try
{
docUsers.Load(strFileUsers);
}
catch (Exception)
{
MessageBox.Show("Cannot open file ");
return;
}
try
{
XmlNodeList nodeList = docUsers.SelectNodes("//display-name");
Console.WriteLine(nodeList.Count);
}
catch (Exception ex)
{
return;
}
答案 0 :(得分:3)
您应该在通话中使用XmlNamespaceManager
XmlNamespaceManager ns = new XmlNamespaceManager(docUsers.NameTable);
ns.AddNamespace("test", "http://java.sun.com/xml/ns/j2ee");
XmlNodeList nodeList = docUsers.SelectNodes("//test:display-name",ns);