Hi zusammen,
Ich versuche gerade krampfhaft ein Wert aus meinem XML auszulesen und "myNode" ist immer null 🙁
Wäre super wenn mal jemand kurz draufschauen könnte und mir meinen Fehler aufzeigen könnte.
XmlTextReader XMLreader = new XmlTextReader(sFile);
XmlDocument XMLdoc = new XmlDocument();
XMLdoc.Load(XMLreader);
XMLreader.Close();
XmlNode myNode;
XmlElement myElement = XMLdoc.DocumentElement; myNode = myElement.SelectSingleNode("/Fingerprints/FingerPrint[ID=" + iFingerprintID +"]/Area";);
sFingerPrintArea = myNode.Value;
XML:
<?xml version="1.0"?>
<Fingerprints>
<FingerPrint>
<ID>-35791123</ID>
<Area>A4:AB8</Area>
<Gitata>A9</Gitata>
<HotelName>A10</HotelName>
<Reisezeitbegin>01.01.2007</Reisezeitbegin>
<Reisezeitende>20.01.2007</Reisezeitende>
</FingerPrint>
</Fingerprints>
In dem Fall möchte ich einfach den fett gedruckten Wert ausgegeben haben.
Danke schonmal 🙂
Grüße
P.S.: sorry für die grottige Formatierung, irgendwie hab ich da den Dreh im Zusammenspiel mit dem Forum hier noch nicht raus 😉
Problem gelöst.. aber was genau die Lösung war darf man mich nicht fragen.
Hi again,
Ich hätt nochmal ne Frage...
Was ist an dieser XPath-Abfrage falsch?
Fingerprints/Fingerprint/FingerprintID[Fingerprints/Fingerprint/ExcelFile[@name="TESTPFAD für ein EXCEL FILE.xls"]]
Ich möchte damit, abhängig ob der ExcelFileName enthalten ist, die zugehörige FingerprintID des Fingerprint' herausfinden. Das Ergebnis soll also 1267719872 sein.
<?xml version="1.0"?>
<Fingerprints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Fingerprint>
<ExcelFile name="4 SUN PRO - VIVA SPANIEN - Tarifas y cupos - v ESP 3 03 (3).xls">
<Sheet index="0">Tarifas y cupos</Sheet>
</ExcelFile>
<ExcelFile name="TESTPFAD für ein EXCEL FILE.xls">
<Sheet index="0">TESTSHEET1</Sheet>
<Sheet index="1">Und noch eins</Sheet>
</ExcelFile>
<FingerprintID>1267719872</FingerprintID>
</Fingerprint>
<Fingerprint>
<ExcelFile name="2 SUN PRO - LOUIS 2006 - Rates Allotments.xls">
<Sheet index="0">Sheet1</Sheet>
<Sheet index="1">asgasdgdasgdasg</Sheet>
<Sheet index="2">425asfdfwf</Sheet>
<Sheet index="3">last one</Sheet>
</ExcelFile>
<FingerprintID>-35791123</FingerprintID>
</Fingerprint>
</Fingerprints>
Schonmal vielen Dank für die Hilfe. Hab mit XPath erst seit ner Woche zu tun und bin noch n bissi am schwimmen 😉 Gegoogelt hab ich schon ausführlich und leider nix brauchbares/verständliches gefunden.
liebe Grüße
hallo SaberRider,
dein XPath-Ausdruck müsste wie folgt heissen:
Fingerprints/Fingerprint/FingerprintID[../ExcelFile[@name='TESTPFAD für ein EXCEL FILE.xls']]
Warum? Die Position innerhalb des []-Blocks ist abhängig von dem übergeordneten Knoten, sprich FingerprintID. Mit ".." springst du zurück zum Elternknoten um dann entsprechend den Kindknoten zufinden der 'TESTPFAD für ein EXCEL FILE.xls' als Wert für den Namens-Attribut hat.
-yellow
Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).
Mein Blog: Yellow's Blog auf sqlgut.de
Hi Yellow,
vielen vielen Dank für die Hilfe und die zugehörige Erklärung. Klingt irgendwie logisch was du schreibst 👍 und natürlich funktionierts 🙂
Wünsch Dir schonmal n schönes WE, auch wenns noch n paar Stunden sind 😉
Grüße aus Mannheim,
Gøran
Moin!
Mal kurz ein Hinweis zu Deinem XML File bzw. ganz allgemein:
In der ersten Zeile eines XML Dokuments sollte immer eine _korrekte _ XML deklaration stattfinden.
Richtig wäre wenn neben der Version der Spezifikation auch angaben über das Character Set gemacht werden.
Das sollte dann z.B. so aussehen:
<?xml version="1.0" encoding="ISO-8859-1"?>
Ein weiterer Punkt in deinem XML-File ist die Schreibweise der Tags.
Die XML Notation der Tags ist case sensitive.
Aus diesem Grund sollten alle Tags entweder ++durchgängig ++ GROß oder klein geschrieben werden!
so far
Tokka
Was einmal war, wird nie wieder sein...
Hallo Tokka,
ein kleiner Einwand von mir: Das Encoding-Attribut in der XML-Deklaration ist optional. Es kann genau so wie das standalone-Attribute weggelassen werden. Standard wäre in dem Fall dann UTF-8.
http://de.wikipedia.org/wiki/XML-Deklaration
Gruß,
Fabian
"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)
Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…
Blog: www.fabiandeitelhoff.de
stimmt, da hast Du recht, mein Fehler!
Da hat die Macht der Gewohnheit zugeschlagen, denn bei uns in der Firma sind die Bestimmungen etwas härter....
Gruß
Tokka
Was einmal war, wird nie wieder sein...
Danke für die Kritik 🙂