我将属性转换为表格, 但我不知道将设置哪些属性, 所以我得到了以下解决方案:
<simpletable spectitle="Chapter Attribute">
<sthead>
<stentry>Name</stentry>
<stentry>Wert</stentry>
</sthead>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="Head/@*"/>
</simpletable>
<!-- ********************* Chapter Attribute -> simpleTable....strow ************************************************************************************** -->
<xsl:template match="Chapter/@*|Head/@*">
<xsl:choose>
<xsl:when test="string(.)">
<strow>
<stentry>
<xsl:value-of select="local-name(.)"/>
</stentry>
<stentry>
<xsl:value-of select="."/>
</stentry>
</strow>
</xsl:when>
</xsl:choose>
</xsl:template>
这是我要处理的XML:
<Chapter title="Information" termpool="" nodeid="DE-123" xmltag="Chapter"
status="" id="" language="" version="">
<Head UniqueID="DE-234" xmlns:axf="http://www.antennahouse.com/names
/XSL/Extensions">Information</Head>
这是结果
<strow>
<stentry>title</stentry>
<stentry>Information</stentry>
</strow>
<strow>
<stentry>nodeid</stentry>
<stentry>DE-123</stentry>
</strow>
<strow>
<stentry>xmltag</stentry>
<stentry>Chapter</stentry>
</strow>
<strow>
<stentry>UniqueID</stentry>
<stentry>DE-234</stentry>
</strow>
对于&lt;&lt;章&gt;&gt;它工作正常,但对于&lt;&lt;头&gt;&gt;它不识别xmlns:axf (或xmlns:axf设置了一个vaule)
希望有人给我一个提示,如何使用@ *访问xmlns:axf 谢谢Jochen
答案 0 :(得分:1)
在XPath使用的XDM数据模型中,名称空间和属性是完全不同的东西。属性轴@*
为您提供了名称空间轴namespace::*
的名称空间的属性。
请注意,这将为您提供元素范围内的所有命名空间,而不仅仅是那些在该元素上声明的命名空间。如果你真的想要一个元素上存在但在父元素上不存在的命名空间,那么逻辑将取决于你使用的XSLT版本,你没有告诉我们。