我有这个简单的xml文档:
<?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>
<?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>
但是,如果我省略了xsl xpath-selectors中的命名空间,我不会得到任何输出:
<?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>
我认为xpath-default-namespace是要做的伎俩.我失踪了什么
如果库版本很重要我有
libexpat1(> = 1.95.8)
libxerces-C3.1
libxml2(> = 2.7.4)
libxslt1.1(> = 1.1.25)
不幸的是,xpath-default-namespace是一个XSLT 2.0功能.您需要在xslt 1.0的xpath中重复命名空间或别名