Я хочу отфильтровать 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"
- Вкладка4 / бб / с [@ attr1 = значение2] = test1122
Реализована логика фильтрации
<xsl:for-each select="//tag4[aa='aaaaaa' and bb/c[@attr1='value1']='Hello' and bb/c[@attr1='value2']='test111']">
</xsl:for-each>
Ни один из элементов не входит внутрь этого для каждой логики. Есть ли проблема в этой логике