に基づいて、XMLタグに属性を追加し、私は次のXMLを変換しようと... XSLTのまわりで私の頭を包むのに苦労しています:つまりactiveFlagタグ値を取り出す(これに別のタグの値
<employees>
<employee>
<employeeNumber>1234</employeeNumber>
<startdate>01/02/2003</startdate>
<activeFlag>true</activeFlag>
<firstname>Erik</firstname>
<address>
<addressline1>123 Main</addressline1>
<zip>07016</zip>
<state>New Jersey</state>
<city>My City</city>
</address>
</employee>
</employees>
と代わりに従業員タグの属性に入れます)。
<employees>
<employee active="true">
<employeeNumber>1234</employeeNumber>
<startdate>01/02/2003</startdate>
<firstname>Erik</firstname>
<address>
<addressline1>123 Main</addressline1>
<zip>07016</zip>
<state>New Jersey</state>
<city>My City</city>
</address>
</employee>
</employees>
私は、次のXSLTを試してみたが、それだけで何もしない:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="employees/employee">
<employee active="{activeFlag}"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
任意のアイデア?
OK - 感謝の両方そんなに...もう一つは申し訳ありません(質問をフォローアップOPに含まれないため)。このメソッドを使って、xmlns、xmlns:xsi、およびxsi:schemaLocation属性をemployeesタグに追加しようとしましたが、それがエラーになりました。これらの特別な属性ですか? –
@ErikSorensen: 'xmlns ='は属性ではありません - これは名前空間宣言です。 namespace-uriが静的に認識されている場合は、名前空間宣言を作成する際に問題はありません.XSLT 1.0でない場合は、xxx:node-set()拡張を含むトリックを使用する必要があります。名前空間。 –
@エリック・ソレンセン:私の答えはあなたにとって役に立ちました。それを受け入れることを検討してみませんか? –