Verwenden:
normalize-space(/)
Wenn dieser XPath-Ausdruck ausgewertet wird, wird der String-Wert des Dokumentenknoten (/
) zuerst hergestellt und dies wird als Argument an die Standard-XPath Funktion normalize-space()
vorgesehen.
Per Definition normalize-space()
liefert dessen Argument mit den führenden und benachbarte Leerzeichen eliminiert und jede Zwischen solche Gruppe von benachbarten Leerzeichen nachlauf - durch ein einzelnes Leerzeichen ersetzt.
Die Auswertung der oben XPath-Ausdruck ergibt: "Ich liebe Essen"
"Das ist mein Lieblingsrestaurant." "Ich werde auf jeden Fall wieder"
die Zitate zu beseitigen, zusätzlich wir die translate()
Funktion:
normalize-space(translate(/,'"', ''))
Das Ergebnis dieser Ausdruck der Auswertung ist:
I love eating out. This is my favorite restaurant. I will definitely be back
Schließlich, um dieses Ergebnis in Anführungszeichen eingeschlossen zu haben, verwenden wir die concat()
Funktion :
concat('"',
normalize-space(translate(/,'"', '')),
'"'
)
Die Auswertung dieses XPath-Ausdruck erzeugt genau das gewünschte Ergebnis:
"I love eating out. This is my favorite restaurant. I will definitely be back"
XSLT - basierte Verifikation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:value-of select=
"concat('"',
normalize-space(translate(/,'"', '')),
'"'
)"/>
</xsl:template>
</xsl:stylesheet>
Wenn diese Transformation auf angewendet wird das bereitgestellte XML Dokument (korrekt ed gemacht werden wohlgeformt):
<p>
"I love eating out."
<br />
<br />
"This is my favorite restaurant."
<br />
"I will definitely be back"
</p>
der XPath-Ausdruck ausgewertet und das Ergebnis dieser Auswertung in die Ausgabe kopiert wird:
"I love eating out. This is my favorite restaurant. I will definitely be back"
Wählen Sie einfach den Text aller Nachkommen von ' p 'mit'/p // */text() '. Greifen Sie mit 'textContent' auf den Inhalt des Textknotens zu. Sie müssen sie immer noch miteinander verketten. – nhahtdh