2016-07-20 22 views
0

Ich fange an mit xml arbeiten und ich versuche zu wissen, ob es eine Möglichkeit gibt, einen Code in diesem zu suchen. Hier sind Sie mein xmlFinden Sie, ob ein Code in XML existiert, mit C#

<?xml version="1.0" encoding="UTF-8"?> 
<doctors_hospital> 
<doctor> 
    <code>1757D</code> 
    <name>one</name> 
</doctor> 
<doctor> 
    <code>1169L</code> 
    <name>two</name> 
</doctor> 
... continues xml 
</doctors_hospital> 

Ich möchte für den Code "aab" # mit c sehen, und das ist mein Code ..

var document =new XmlDocument(); 
     document.Load("O:\\test\\doctor.xml"); 
    XmlNode doctor; 
     XmlNode root = document.DocumentElement; 
     doctor = root.SelectSingleNode("/doctors_hospital/doctor/code='aab'"); 

Ich kann das nicht tun. irgendein Vorschlag? Diese wählt den gesamten doctor Knoten mit dem passenden code Wert dank

+0

_ "Ich kann das nicht tun" _ - Warum nicht? Welchen Fehler bekommst du? –

+0

Ich bekomme diesen Fehler: Ausdruck muss zu einer Knotenmenge ausgewertet werden. –

Antwort

0

SelectingSingleNode nimmt Ausdruck eines Standard-XPath Unter der Annahme, was Sie wollen, ist

/doctors_hospital/doctor[code='aab'] 

verwenden.

+0

danke Jim! eine andere Frage, gibt es einen Leitfaden, der mir hilft, die xmldokumentenklasse besser zu verstehen? für Dummies jeje –

+0

Die C# -Dokumentation? C# -Tutorials? Es ist alles im Web. –

0

Ich stimme zu Jim, alternativ könnten Sie auch Linq zu Xml verwenden und dies tun.

XDocument doc = XDocument.Load(filepath);  
var codeExist = doc.Descendants("code").Any(x=>(string)x.Value == "1169L"); 

prüfen diese Demo

+0

danke! Ich werde mehr über Linq erfahren. In diesem Moment werde ich die Antwort von Jim bekommen. Danke für deine Zeit Hari –

+0

Sicher, ich bevorzuge diese Lösung für Anfänger. –

+0

jajaja ja, ich beginne gerade mit xml –