【发布时间】:2020-09-03 04:26:42
【问题描述】:
如何获取XSL中带有属性的元素的值?
这是我用来测试代码的示例。
<CD>
<a/> <!--N0#1-->
<b>text</b> <!--NO#2-->
<c YEAR="value"/> <!--NO#3-->
<d name="value" ou="aous">9.90</d> <!--NO#4-->
<e><f>text</f> <!--NO#5-->
<g>text</g></e>
<i><h>text</h> <!--NO#6-->
<h>text</h></i>
</CD>
我希望这个 NO#4 部分给我这样的输出:
"d" : {
"@name" : "value",
"@ou" : "aous",
"VALUE_VARIABLE":"9.90"
}
我遇到的问题是我无法获得“9.90”元素。我怎样才能做到这一点?这是我的代码:
<xsl:for-each select="@*">
<xsl:choose>
<xsl:when test="position()=last()"> <!--check if current attribute is last-->
"@<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>"
</xsl:when>
<xsl:when test="./*"> <!--check if current element has child elements-->
"<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>"
</xsl:when>
<xsl:when test="(./*) and not(position()=last())">
"<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>",
</xsl:when>
<xsl:otherwise>
"@<xsl:value-of select="name()"/>" : "<xsl:value-of select="."/>",
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
编辑 - here 你可以找到完整的代码。
【问题讨论】: