2017-07-25 2 views
0

Ich bin nicht in der Lage, XML-Dokument mit einem Standardnamespace zu analysieren.Nicht in der Lage, XML in C# mit Standard-Namespace zu analysieren

Wenn ich den Namespace xmlns="http://java.sun.com/xml/ns/j2ee aus der XML-Datei entferne, kann ich Werte in der Nodelist abrufen. Ich möchte Linq nicht verwenden.

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# -Code:

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; 
} 

Antwort

3

Sie sollten eine XmlNamespaceManager in Ihren Anruf verwenden

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

Noch immer Zählung null. – Hkachhia

+0

In meinem Fall xmlns append nach xml-Tag wie Hkachhia

+0

Könnten Sie bitte Beispiel XML –

Verwandte Themen