die XML Gegeben:Wie zwischen Attribute und Elementknoten unterscheiden zurück von einer sächsischen XPathSelector
<root name="value">
<level1>
<level2>Text</level2>
</level1>
</root>
ich die XPath will /root/@name
zurückzukehren value
und den XPath /root/level1
die XML-Serialisierung des <level1>
Knoten zurückzukehren:
<level1>
<level2>Text</level2>
</level1>
Ich benutze die a9api-Schnittstelle von Saxon 9.6 in Java.
Ich habe festgestellt, dass ich XdmValue.toString()
nennen kann die XML-Serialisierung des Ergebnisses der Auswertung des XPath zu erhalten, die für die Auswahl eines Elements mir das gewünschte Ergebnis erhält, liefert aber name="value"
wenn ein Attribut auswählen. Und ich kann XdmItem.getStringValue()
anrufen, um die string value zu erhalten, die mir den richtigen Wert für das Attribut erhält, aber den textuellen Inhalt des Elements zurückgibt.
Michael Kay hat zuvor said "Saxon's s9api interface ... returns XdmValue objects whose type you can interrogate". Ich kann sehen, dass ich eine instanceof
Prüfung durchführen könnte, um festzustellen, ob es ein XdmAtomicValue
, XdmExternalObject
, XdmFunctionItem
oder XdmNode
ist, aber Elemente und Attribute sind beide Instanzen von XdmNode
. Wie unterscheide ich zwischen den beiden?
(ich die XPaths nicht ändern kann, wie sie durch den Benutzer zur Verfügung gestellt sind.)