我想过滤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标签应基于以下逻辑填充。
已实施过滤逻辑
<xsl:for-each select="//tag4[aa='aaaaaa' and bb/c[@attr1='value1']='Hello' and bb/c[@attr1='value2']='test111']">
</xsl:for-each>
对于每个逻辑,没有一个元素进入此内部。这种逻辑有什么问题吗?