XSLT для каждой логики с несколькими условиями - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу отфильтровать 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>

Ни один из элементов не входит внутрь этого для каждой логики. Есть ли проблема в этой логике

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...