0

次の XML があるとします。

<ShoppingCart>

  <!-- Item 1 -->
  <LineItem>
    <extendedAttributes>
      <item>
        <name>RenewingSubscriptionID</name>
        <value>2106596709</value>
        <valueDataType>string</valueDataType>
      </item>
      <item>
        <name>subscriptionLineItemId</name>
        <value>3145223500</value>
        <valueDataType>string</valueDataType>
      </item>
    </extendedAttributes>
  </LineItem>

  <!-- Item 2 -->
  <LineItem>
    <extendedAttributes>
      <item>
        <name>RenewingSubscriptionID</name>
        <value>2106596709</value>
        <valueDataType>string</valueDataType>
      </item>
    </extendedAttributes>
  </LineItem>

</ShoppingCart>

trueの存在がLineItem/extendedAttributes/item/nameの値を持つ場合、 の値を持つ XSLT 変数を宣言するにはどうすればよいsubscriptionLineItemIdですか? 上記の XML の場合、望ましい動作はItem 1、変数 =trueItem 2持ち、変数 = を持つことですfalse

4

1 に答える 1

1

You would write something like this

<xsl:template match="LineItem">
  <xsl:variable name="has-item-id" select="boolean(extendedAttributes/item[name = 'subscriptionLineItemId'])"/>
  <has-item-id><xsl:value-of select="$has-item-id"/></has-item-id>
</xsl:template>

From the perspective of the LineItem element, the XPath expression finds all extendedAttributes/item elements that have the desired value of name, and converts the resulting node set to a boolean value. An empty node set converts to false.

于 2013-06-08T12:06:16.547 に答える