0

こんにちは、よろしくお願いします

この入力 XML を考えると

<root>
<part id='74'>
    <title>Belt</title>
    <description>1158J5</description>
    <partno>C00112576</partno>
    <price>10.99</price>
</part>
<category id='6' name='Washer-Dryer'></category>
<category id='2' name='Washing machine'></category>
<make id='6' name='Ariston'></make>
<make id='2' name='Hotpoint'></make>
<make id='33' name='Indesit'></make>
<model catid='2' catname='Washing machine' makeid='6' makename='Ariston' modelid='524'>A1235</model>
<model catid='2' catname='Washing machine' makeid='2' makename='Hotpoint' modelid='413'>SCR37P</model>
<model catid='2' catname='Washing machine' makeid='2' makename='Hotpoint' modelid='35751'>WD440</model>
<model catid='6' catname='Washer-Dryer' makeid='33' makename='Indesit' modelid='2989'>WF000G</model>

に変換したいと思います

<root>
<part id='74'>
    <title>Belt</title>
    <description>1158J5</description>
    <partno>C00112576</partno>
    <price>10.99</price>
</part>
<category id='6' name='Washer-Dryer'>
    <make id='33' name='Indesit'>
        <model catid='6' catname='Washer-Dryer' makeid='33' makename='Indesit' modelid='2989'>WF000G</model>
    </make>
</category>
<category id='2' name='Washing machine'>
    <make id='6' name='Ariston'>
        <model catid='2' catname='Washing machine' makeid='6' makename='Ariston' modelid='524'>A1235</model>
    </make>
    <make id='2' name='Hotpoint'>
        <model catid='2' catname='Washing machine' makeid='2' makename='Hotpoint' modelid='413'>SCR37P</model>
        <model catid='2' catname='Washing machine' makeid='2' makename='Hotpoint' modelid='35751'>WD440</model>
    </make>
</category>

この XML を asp クラシック フィードから受け取ります。asp にアクセスでき、そこでそれを行うことができます。受け取ったら、php で受け取り、xsl 変換に送信してブラウザーに出力します。

したがって、私の質問は、asp、php、または xsl のどれが最善の方法であるかということであり、少なくともこれを行うための最善の方法で私を始めることは可能でしょうか?

どうもありがとう ティム・ドジソン

4

1 に答える 1

0

よくグーグルして髪を引っ張る日、私はこれを思いついた

<xsl:template match="root">
    <xsl:for-each select="//make">
        <xsl:variable name="makeid" select="@id" />
        <xsl:variable name="makename" select="@name" />
        <make id="{$makeid}" name="{$makename}">
        <xsl:for-each select="//model[@makeid = $makeid]">
            <model catid="{@catid}" catname="{@catname}" makeid="{@makeid}" makename="{@makename}" modelid="{@modelid}">
                <xsl:value-of select="."/>
            </model>
        </xsl:for-each>
        </make>
    </xsl:for-each> 
</xsl:template>

最初は欲しかったものではないことはわかっていますが、私のニーズには問題ありません。誰かが私が少なくとも正しい方向に進んでいるかどうかを言うことができればいいのにと思っていました

どうもありがとうティム

于 2012-07-18T22:11:44.613 に答える