Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 使用xpath默认名称空间定义用于XSL xpath的默认名称空间_Xslt_Xpath_Xml Namespaces - Fatal编程技术网

Xslt 使用xpath默认名称空间定义用于XSL xpath的默认名称空间

Xslt 使用xpath默认名称空间定义用于XSL xpath的默认名称空间,xslt,xpath,xml-namespaces,Xslt,Xpath,Xml Namespaces,我有一个简单的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>

我有一个简单的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>

ANSI_X3.4-1968
使用此xsl时,我可以提取名称:

<?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选择器中省略名称空间,则不会得到任何输出:

<?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默认名称空间就是为了达到这个目的。我错过了什么

以防库版本很重要,我有

libexpat1(>=1.95.8)

libxerces-c3.1

libxml2(>=2.7.4)


libxslt1.1(>=1.1.25)

不幸的是
xpath默认名称空间
是XSLT2.0的一个特性。您需要在
xslt 1.0中的
xpath
中重复名称空间或将其别名


参考:而且

是的,现在我看到libxslt1.1不支持
xpath默认名称空间
谢谢!如何在
xslt
1.0版中定义
xpath默认名称空间