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>

のにアクセスするにvalueはどうすればよいですか?OptionisDefault="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

そのような要素が1つしかないことがわかっている場合、または最初のそのような要素のみに関心がある場合は、単純に使用できます。

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

の必要はありませんfor-each。これはXSLT1.0に適用されvalue-of、2.0では、上記はすべての要素のvalue属性値を出力します。Results/Option[@isDefault = 'true']

于 2012-09-10T11:28:31.767 に答える
3

属性の文字列値が、であるOption要素が最大で1つあることが保証されている場合、isDefault"true"

次に、このXpathワンライナーを使用します

/*/*[@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 に答える