2

我正在尝试处理 B2B 转换引擎中的 xsd:choice。

此处为 xsd 示例

那就是我有一个

在此处输入图像描述

我只对获得“一个”部分感兴趣

而且我只想提取“one”元素,而不关心它来自哪个底层类型,即我想将结果放入下面的“one”中,无论它来自thingyone、thingytwo 还是thingythree。

在此处输入图像描述

在 XSLT 术语中,我想做:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.differentthingies.com/20111119/thingy" xsi:schemaLocation="http://xmlns.differentthingies.com/20111119/thingy differentthinggies.xsd">
    <differentthingies>
        <thingythree>
            <one>thisisthingythree1</one>
            <three2>thisisthingythree2</three2>
            <three3>thisisthingythree3</three3>
        </thingythree>
    </differentthingies>
</root>

<xsl:template match="/">
        <xsl:variable name="var1_root" select="ns0:root"/>
        <root xmlns="http://xmlns.differentthingies.com/20111119/anotherthingy">
            <xsl:attribute name="xsi:schemaLocation" namespace="http://www.w3.org/2001/XMLSchema-instance">http://xmlns.differentthingies.com/20111119/anotherthingy thingy.xsd</xsl:attribute>
            <thingyone>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingyone/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingythree/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
                <xsl:for-each select="$var1_root/ns0:differentthingies/ns0:thingytwo/ns0:one">
                    <one>
                        <xsl:value-of select="string(.)"/>
                    </one>
                </xsl:for-each>
            </thingyone>
        </root>
    </xsl:template>

会成为

<root xmlns="http://xmlns.differentthingies.com/20111119/anotherthingy" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.differentthingies.com/20111119/anotherthingy thingy.xsd">
    <thingyone>
        <one>thisisthingythree1</one>
    </thingyone>
</root>
4

0 回答 0