XPath-Suche nach "id" - Attribut , geben NPE - Java
Alle,
Ich habe mehrere XML-Vorlagen, die ich brauche zu füllen mit Daten, um zu erlauben, mein Dokument-generator-Klasse, um mehrere Vorlagen und legen Sie die Daten richtig
Bezeichne ich den Knoten, ich will meine Klasse zum einfügen von Daten durch das hinzufügen eines Attributs:
id="root"
Ein Beispiel für eine XML -
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<SiebelMessage MessageId="07f33fa0-2045-46fd-b88b-5634a3de9a0b" MessageType="Integration Object" IntObjectName="" IntObjectFormat="Siebel Hierarchical" ReturnCode="0" ErrorMessage="">
<listOfReadAudit >
<readAudit id="root">
<recordId mapping="Record ID"></recordId>
<userId mapping="User ID"></userId>
<customerId mapping="Customer ID"></customerId>
<lastUpd mapping="Last Updated"></lastUpd>
<lastUpdBy mapping="Last Updated By"></lastUpdBy>
<busComp mapping="Entity Name"></busComp>
</readAudit>
</listOfReadAudit>
</SiebelMessage>
Code
expr = xpath.compile("//SiebelMessage[@id='root']");
root = (Element) expr.evaluate(xmlDoc, XPathConstants.NODE);
Element temp = (Element) root.cloneNode(true);
In diesem Beispiel verwenden:
XPath festlegen select-Element durch das Attribut-Wert
Den Ausdruck funktioniert nicht:
//SiebelMessage[@id='root']
Irgendwelche Ideen was ich falsch mache?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Diese wählt alle
readAudit
Elemente mit derid
- Attribut aufroot
(es sollte nur 1 element in Ihrem Fall).Könnte man machen, sicher, es gibt maximal 1 element mit diesem:
Was Sie tun, ist die Auswahl SiebelMessage Knoten mit dem Attribut id='root'.
Aber die SiebelMessage nicht eine id, es ist die readAudit sind Sie nach. Also entweder tun
oder