我有一个特定的Xml
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="Recipient" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
和一个简单的xslt文件。如果我尝试从名为“element”的标签中选择属性“name”的值,则输出为空。
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:template match="element">
<xsl:value-of select="@name"/>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
element
位于绑定到xs
前缀的名称空间中,因此match="element"
找不到匹配项。您需要在XSLT中定义xs
前缀(或任何前缀名称,只要它映射到正确的名称空间URI)并使用match="xs:element"
:
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xsl:template match="xs:element">
<xsl:value-of select="@name"/>
</xsl:template>
</xsl:stylesheet>
<强> xsltransform.net demo
强>