具有多个条件的XSLT for-each逻辑

时间:2018-09-10 11:48:17

标签: xml xslt

我想过滤xml并使用XSLT重新创建单独的输出消息

输入消息

<header1>
<tag1>abc</tag1>
<tag2 attr1="test">bcd</tag2>
<tag4>
        <aa>aaaaaa</aa>
        <bb>
            <c attr1="value1">Hello</c>
            <c attr1="value2">test111</c>
            <c attr1="value3">test222</c>
        </bb>
    </tag4>
    <tag4>
        <aa>aaaaaa</aa>
        <bb>
            <c attr1="value1">YYYY</c>
            <c attr1="value2">test1122</c>
            <c attr1="value3">test000</c>
        </bb>
    </tag4>
    <tag4>
        <aa>aaaaaa</aa>
        <bb>
            <c attr1="value1">Hello</c>
            <c attr1="value2">test111</c>
            <c attr1="value3">testxxx</c>
        </bb>
</tag4>
</header1>

预期消息

"out" : {
"a" : "abc",
"xx" : [
{"got" : "test222"},
{"got" : "testxxx"}
]
}

过滤逻辑

XX标签应基于以下逻辑填充。

  • tag4 / aa =“ aaaaaa”
  • tag4 / bb / c [@ attr1 = value1] =你好
  • tag4 / bb / c [@ attr1 = value2] = test1122

已实施过滤逻辑

<xsl:for-each select="//tag4[aa='aaaaaa' and bb/c[@attr1='value1']='Hello' and bb/c[@attr1='value2']='test111']">
</xsl:for-each>

对于每个逻辑,没有一个元素进入此内部。这种逻辑有什么问题吗?

0 个答案:

没有答案