0
Установка: Apache Xalan 2.7.1XSLT условными применяются-шаблоны
Вход:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p>
<code>111</code>
<attr>good</attr>
</p>
<p>
<code>222</code>
<attr>bad</attr>
</p>
<s>
<ps>
<p>
<code>111</code>
</p>
<ps>
</s>
<s>
<ps>
<p>
<code>222</code>
</p>
<p>
<code>333</code>
</p>
<ps>
</s>
</root>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates select="
root[./p/code = ./s/ps[1]/p/code and ./p/attr= 'bad']/s" />
</xsl:template>
<xsl:template match="s">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
Желаемая Выбрать:
Я хотел бы выбрать только те s
, который имеет в s/ps
первый p
с code
, что указывает на p
элемент с bad
attr
Примечание: Только XSLT 1.0 решения оценили
работает как шарм, спасибо :) –