C# XML datei Knoten finden per XPath

Heavenfighter

Grünschnabel
Hallo,

ich muss mich zum ersten Mal mit Xpath beschäftigen und hänge schon direkt bei einem kleinen Problem.

Zunächst mal mein Codebeispiel:

Code:
XmlDocument xmlfile = new XmlDocument();
xmlfile .Load( test.xml );

string xPathExpression = "//data/assets[inv_nr='item 3']";
XmlElement asset = (XmlElement)xmlfile.SelectSingleNode( xPathExpression );

Leider findet er den Knoten nicht.

Die dazugehörige XML-datei sieht wei folgt aus:
Code:
<?xml version="1.0" standalone="yes"?>
<data xmlns="http://tempuri.org/data.xsd" >
  <assets>
    <inv_nr>item 0</inv_nr>
    <bez>item 0</bez>
    <std_code>0000</std_code>
    <std_bez>item 0</std_bez>
    <kst>item 0</kst>
  </assets>
  <assets>
    <inv_nr>item 1</inv_nr>
    <bez>item 1</bez>
    <std_code>0001</std_code>
    <std_bez>item 1</std_bez>
    <kst>item 1</kst>
  </assets>
  <assets>
    <inv_nr>item 2</inv_nr>
    <bez>item 2</bez>
    <std_code>0002</std_code>
    <std_bez>item 2</std_bez>
    <kst>item 2</kst>
  </assets>
  <assets>
    <inv_nr>item 3</inv_nr>
    <bez>item 3</bez>
    <std_code>0003</std_code>
    <std_bez>item 3</std_bez>
    <kst>item 3</kst>
  </assets>
</data>

Also ich möchte das asset haben, bei dem inv_nr meinen Kriterien entspricht.
Was mache ich da falsch? Liegt es am xmlns Attribut von data?
 
Hi

Wenn ich mich Recht entsinn, suchst du nach einem Attribut. (...[...]..). Kann mich aber auch täuschen :D
Ich kann dir aber das Tool Expresso empfehlen. Mit dem kannst du XPath-Ausdrücke erstellen und testen
 
Hmm,

ok habe mir das Tool mal runtergeladen. Wo genau kann man da jetzt XPath Ausdrücke testen? Ich sehe da nur Sachen für normal reguläre Ausdrücke
 

Neue Beiträge

Zurück