希望の出力を達成するためのXSLTマッピングとヘルプを探す初心者。私は入力XMLをそのまま出力したい。 空のxmls = ""属性を/ Inventory/Actionに追加するxsl:copy-of selectを使ってみましたが、これはターゲットでは受け入れられません。 また、xsl:for-eachをAdActionのような要素のXSLT値以下で使用しようとすると、ユニット< 4567 7896>とID < 12345 67890> QU < 200 100>が繰り返されます。XSLTマッピング変換
入力XML。私が使用している
<?xml version="1.0" encoding="UTF-8"?>
<Body>
<Inventory>
<Action MessageType="hello" Type="hi" Action="hand" InventoryState="avail">
<DateTime/>
<Ad Action="Set">
<Position>
<Unit TypeCode="abc">4567</Unit>
<Item>
<ID>12345</ID>
</Item>
</Position>
<Qu>200</Qu>
</Ad>
</Action>
<Action MessageType="hello" Type="hi" Action="hand" InventoryState="avail">
<DateTime/>
<Ad Action="Set">
<Position>
<Unit TypeCode="abc">7896</Unit>
<Item>
<ID>67890</ID>
</Item>
</Position>
<Qu>100</Qu>
</Ad>
</Action>
</Inventory>
XSLTマッピング。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="xsl">
<xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<Body>
<xsl:for-each select="//Action">
<Action>
<xsl:attribute name="Type">hello</xsl:attribute>
<xsl:attribute name="AType">hi</xsl:attribute>
<xsl:attribute name="Action">hand</xsl:attribute>
<xsl:attribute name="State">avail</xsl:attribute>
<DateTime>DateTime</DateTime>
<Ad>
<xsl:attribute name="Action"><xsl:value-of select="//Ad/@Action"/></xsl:attribute>
<Position>
<Unit>
<xsl:attribute name="TypeCode">Store</xsl:attribute>
</Unit>
<Item>
<ID>
<xsl:value-of select="//Action/Ad/Position/Item/ID"/>
</ID>
</Item>
</Position>
<Qu>
<xsl:value-of select="//Action/Ad/Qu"/>
</Qu>
</Ad>
</Action>
</xsl:for-each>
</Body>
</xsl:template>
出力:なし値の繰り返し
<Body xmlns="http://www.w3.org/1999/XSL/Format">
<Action Type="hello" AType="hi" Action="hand" State="avail">
<DateTime>DateTime</DateTime>
<Ad Action="Set Set">
<Position>
<Unit TypeCode="Store"/>
<Item>
<ID>12345 67890</ID>
</Item>
</Position>
<Qu>200 100</Qu>
</Ad>
</Action>
<Action Type="hello" AType="hi" Action="hand" State="avail">
<DateTime>DateTime</DateTime>
<Ad Action="Set Set">
<Position>
<Unit TypeCode="Store"/>
<Item>
<ID>12345 67890</ID>
</Item>
</Position>
<Qu>200 100</Qu>
</Ad>
</Action>
所望の出力。
<Body xmlns="http://www.w3.org/1999/XSL/Format">
<Action Type="hello" AType="hi" Action="hand" State="avail">
<DateTime>DateTime</DateTime>
<Ad Action="Set">
<Position>
<Unit TypeCode="Store"/>
<Item>
<ID>12345</ID>
</Item>
</Position>
<Qu>200</Qu>
</Ad>
</Action>
<Action Type="hello" AType="hi" Action="hand" State="avail">
<DateTime>DateTime</DateTime>
<Ad Action="Set">
<Position>
<Unit TypeCode="Store"/>
<Item>
<ID>67890</ID>
</Item>
</Position>
<Qu>100</Qu>
</Ad>
</Action>
は、多分あなたが何をしたか、あなたのコードについての詳細を学ぶために便利です。だからここにあなたのすべてのコードを貼り付けて、正しい答えを待ってはいけません。 :) – Arendax