2017-03-21 5 views
0

SelectNodes gibt immer die Zahl 0 zurück, auch wenn sie den Wert hat.SelectNodes Gibt immer die Zahl 0 zurück.

<?xml version="1.0" encoding="utf-16"?> 
    <Configurations xmlns="DEH_Common.Schemas"> 
     <sftpConfiguration> 
     <file> 
      <filedetails> 
      <fileext>csv</fileext> 
      <DataContentDetailId>1</DataContentDetailId> 
      </filedetails> 
    </file> 
    </sftpConfiguration> 
    </Configurations> 

C# den Nodelist zu lesen ....

XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("//Configurations/sftpConfiguration/file"); 

Antwort

1

Es ist wegen der in Ihrem xml using namespace, sollten Sie Namespace xmlDoc and also no need to use DocumentElement` hinzufügen würde Dieser Code Arbeit:

var nsmgr = new XmlNamespaceManager(xmlDoc.NameTable); 
nsmgr.AddNamespace("a", "DEH_Common.Schemas"); 
XmlNodeList nodeList = xmlDoc.SelectNodes("//a:sftpConfiguration/a:file", nsmgr); 
+0

verwandt Sind das versucht? Hat es funktioniert? –

+0

Es funktionierte. Vielen Dank. –

1

In Ihrem XML DocumentElement ist die Konfigurationen Knoten, so sollten Sie Ihre XPath seine sftpConfiguration/file

XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("sftpConfiguration/file"); 
+0

Ich habe dies bereits versucht, aber immer noch 0 Zählung bekommen. –

+0

schrieb ein schnelles Beispiel und 'nodeList.Count' gibt' 1' zurück. Musste das xmlns-Attribut entfernen und änderte die Codierung in utf-8 tho – bradbury9

0

Try this:

xmlDoc.DocumentElement.SelectNodes("/Configurations[@*]/sftpConfiguration/file"); 
+0

Ich habe es gerade versucht, aber immer noch Count 0. –

+0

Ich habe es. Es ist mit dem Namespace –