27 Stimmen

XQuery: Rückgabewert eines Elements und nicht das Element selbst

Ich habe ein XML-Dokument mit folgendem Inhalt

...
<foo>abc</foo>
...

Wenn ich bewerte

return $xml//foo

Ich komme zurück

<foo>abc</foo>

Gibt es eine Möglichkeit, nur abc stattdessen?

34voto

Harold L Punkte 5058

Ja, Sie wollen die Funktion text() für die Auswahl des untergeordneten Textes:

return $xml/text()

Seien Sie vorsichtig, wenn Sie verschachtelte Tag-Strukturen innerhalb von $xml haben, weil dies nur eine Ebene tief für Text-Knoten gehen wird. Wenn Sie alle Textknoten zusammen, Strippen aus anderen XML-Struktur wollen, wird dies tun beliebig tief:

return $xml//text()

20voto

Oliver Hallam Punkte 4202

Verwenden Sie die String-Funktion, um den String-Inhalt eines Knotens zu ermitteln.

return string($xml)

9voto

SeeJay Punkte 89

Um nur die Daten innerhalb eines Elements zurückzugeben, können Sie verwenden:

return data($xml)

0voto

savemaxim Punkte 377

Umwandlung in xs:string {xs:string($xml/foo)}

0voto

Aniruddha Jagtap Punkte 383

OSB-Benutzer (Oracle Service Bus) können folgende Funktion nutzen.

fn-bea:serialize($xml)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X