3

如果我有以下 XML:

<Results>
  <Option isDefault="true" value="1">
     <DisplayName>
        One
     </DisplayName>
  </Option>
  <Option value="2">
     <DisplayName>
        Two
     </DisplayName>
  </Option>
  <Option value="3">
     <DisplayName>
        Three
     </DisplayName>
  </Option>
</Results>

如何访问valuewhich Optionhas isDefault="true"

到目前为止,我已经尝试过:

<xsl:variable name="varName">
   <xsl:for-each select="Results/Option[isDefault='true']">
      <xsl:value-of select="@value" />
   </xsl:for-each>
</xsl:variable> 
4

3 回答 3

4

如果你知道只有一个这样的元素,或者你只对第一个这样的元素感兴趣,你可以简单地使用

<xsl:value-of select="Results/Option[@isDefault = 'true']/@value"/>

不需要for-each. 这适用于 XSLT 1.0 和value-of2.0 以上将输出所有元素的value属性值。Results/Option[@isDefault = 'true']

于 2012-09-10T11:28:31.767 回答
3

如果保证最多有一个Option元素的isDefault属性值为字符串"true"

然后使用这个 Xpath one-liner

/*/*[@isDefault='true']/@value
于 2012-09-10T12:02:57.923 回答
0
<xsl:variable name="varName">
   <xsl:for-each select="Results/Option[@isDefault='true']">
      <xsl:value-of select="@value" />
   </xsl:for-each>
</xsl:variable> 
于 2012-09-10T10:02:00.843 回答