加入XML元素

时间:2016-11-30 23:20:32

标签: xml xslt join xpath

我想基于某些条件加入两个XML节点(比如两个表之间的SQL连接)。

示例输入XML:

<Sheet>
    <Section>
        <Header>
            <node>Campaign</node>
            <node>Placement</node>
            <node>KPI1</node>
            <node>KPI2</node>
        </Header>
        <Data>
            <Row>
                <value>Products</value>
                <value>Banner</value>
                <value>123</value>
                <value>134</value>
            </Row>
            <Row>
                <value>Products</value>
                <value>Popup</value>
                <value>234</value>
                <value>345</value>
            </Row>
            <Row>
                <value>Products</value>
                <value>Other</value>
                <value>345</value>
                <value>567</value>
            </Row>
            <Row>
                <value>Tour</value>
                <value>Banner</value>
                <value>123</value>
                <value>134</value>
            </Row>
            <Row>
                <value>Tour</value>
                <value>Popup</value>
                <value>234</value>
                <value>345</value>
            </Row>
        </Data>
    </Section>
    <Section>
        <Header>
            <node>Campaign</node>
            <node>Placement</node>
            <node>KPI41</node>
            <node>Spend</node>
        </Header>
        <Data>
            <Row>
            <value>Products</value>
                <value>Banner</value>
                <value>123</value>
                <value>2000000</value>

            </Row>
            <Row>
                <value>Products</value>
                <value>Popup</value>
                <value>234</value>
                <value>1000000</value>
            </Row>
            <Row>
                <value>Products</value>
                <value>Other</value>
                <value>345</value>
                <value>2000000</value>
            </Row>
            <Row>
                <value>Tour</value>
                <value>Banner</value>
                <value>123</value>
                <value>12</value>
            </Row>
            <Row>
                <value>Tour</value>
                <value>Popup</value>
                <value>234</value>
                <value>10</value>
            </Row>
        </Data>
    </Section>
</Sheet>

我想基于标题节点广告系列和展示位置加入Section [1]和Section [2](在SQL术语中:SELECT * FROM Section1 S1,Section2 S2 Where S1.Campaign = S2.Campaign AND S1.Placement = S2.Placement)。我期待加入的XML输出。

预期输出如下:

<Sheet>
    <Section>
        <Header>
            <node>Campaign</node>
            <node>Placement</node>
            <node>KPI1</node>
            <node>KPI2</node>
            <node>Campaign</node>
            <node>Placement</node>
            <node>KPI41</node>
            <node>Spend</node>
        </Header>
        <Data>
            <Row>
                <value>Products</value>
                <value>Banner</value>
                <value>123</value>
                <value>134</value>
                <value>Products</value>
                <value>Banner</value>
                <value>123</value>
                <value>2000000</value>
            </Row>
            <Row>
                <value>Products</value>
                <value>Popup</value>
                <value>234</value>
                <value>345</value>
                <value>Products</value>
                <value>Popup</value>
                <value>234</value>
                <value>1000000</value>
            </Row>
           .......................
           like above
           ...................
        </Data>
    </Section>
</Sheet>

在XML中实现这一目标的最佳方法是什么? XPATH还是XSLT?

请用最好的方法帮助我。

0 个答案:

没有答案