2017-07-25 130 views
0

我無法使用默認名稱空間解析XML文檔。無法使用默認名稱空間解析C#中的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; 
} 

回答

3

你應該在你的呼叫

XmlNamespaceManager ns = new XmlNamespaceManager(docUsers.NameTable); 
ns.AddNamespace("test", "http://java.sun.com/xml/ns/j2ee"); 
XmlNodeList nodeList = docUsers.SelectNodes("//test:display-name",ns); 
+0

仍然得到計數空使用的XmlNamespaceManager。 – Hkachhia

+0

在我的情況下,xmlns在像之類的xml標記後面追加...> – Hkachhia

+0

您能否請求發佈示例XML –

相關問題