Definieren Sie einen Standard-namespace für die Verwendung in XSL-XPath mittels xpath-default-namespace
Habe ich diese einfache xml-Dokument:
<?xml version='1.0' encoding='UTF-8'?>
<registry xmlns="http://www.iana.org/assignments" id="character-sets">
<registry id="character-sets-1">
<record>
<name>ANSI_X3.4-1968</name>
</record>
</registry>
</registry>
Als ich dieses xsl-kann ich extrahieren Sie die Namen:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://www.iana.org/assignments" version="1.0">
<xsl:template match="/my:registry">
<xsl:copy-of select="//my:record/my:name"/>
</xsl:template>
</xsl:stylesheet>
Wenn ich allerdings weglassen, den namespace im xsl-xpath-Selektoren, bekomme ich keine Ausgabe:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://www.iana.org/assignments" xpath-default-namespace="http://www.iana.org/assignments" version="1.0">
<xsl:template match="/registry">
<xsl:copy-of select="//record/name"/>
</xsl:template>
</xsl:stylesheet>
Ich dachte xpath-default-namespace gemeint ist, den trick zu tun. Was bin ich?
Im Falle library-Versionen sind wichtig, ich habe
libexpat1 (>= 1.95.8)
libxerces-c3.1
libxml2 (>= 2.7.4)
libxslt1.1 (>= 1.1.25)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider
xpath-default-namespace
ist ein XSLT 2.0-Funktion. Sie müssen wiederholen Sie den namespace oder alias in Ihrexpath
imxslt 1.0
Referenz : Jenni Tennison und IBM
xpath-default-namespace
Danke!xpath-default-namespace
imxslt
version 1.0?