-1

以下の XML の場合

<SampleXMLFormat>
  <Header>
    <Id>123</Id>
  </Header>
  <Properties>
    <property name="a1_prop1" value="val1"/>
    <property name="a1_prop2" value="val2"/>
    <property name="a2_prop1" value="val1"/>
    <property name="a2_prop2" value="val2"/>
    <property name="abcd" value="efgh"/>
  </Properties>
</SampleXMLFormat>

次の出力を取得するための XSLT 変換を取得できますか。

1) 接頭辞付きのプロパティなしa2

<SampleXMLFormat>
  <Header>
    <Id>123</Id>
  </Header>
  <Properties>
    <property name="a1_prop1" value="val1"/>
    <property name="a1_prop2" value="val2"/>
    <property name="abcd" value="efgh"/>
  </Properties>
</SampleXMLFormat>

2) 接頭辞付きのプロパティのみa2

<property name="a2_prop1" value="val1"/>
<property name="a2_prop2" value="val2"/>

@ABach第2部では、これを試しています..すべてのノードを選択する代わりに、プロパティノードのみを選択しようとしていますが、不正な形式の出力が得られます.何が間違っているのか教えてください.

xslt = '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

  <xsl:template match="property|node()">
    <xsl:copy>
      <xsl:apply-templates select="property|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="property[not(starts-with(@name, \'BOND_\'))]"/>
</xsl:stylesheet>';
4

1 に答える 1