Предположим, что у меня это есть этот XML-документ, в котором ... просто представляет другие разные узлы:Match все узлы, которые содержат дочерний узел с конкретным содержанием
<AA>
<BB>
<CC>True</CC>
...
</BB>
<BB>
<CC>True</CC>
...
</BB>
<BB>
<CC>False</CC>
...
</BB>
<BB>
<CC>True</CC>
...
</BB>
<BB>
<CC>False</CC>
...
</BB>
</AA>
Я пытаюсь сделать некоторые шаблоны, например:
<xsl:template match="/">
<DD>
<xsl:apply-templates select="/AA/YYY" />
</DD>
<EE>
<xsl:apply-templates select="/AA/XXX" />
</EE>
</xsl:template>
<xsl:template match="YYY">
<!-- do stuff -->
</xsl:template>
<xsl:template match="XXX">
<!-- do stuff -->
</xsl:template>
для получения вывод, подобный этому:
<AA>
<DD>
<BB>
<CC>True</CC>
</BB>
<BB>
<CC>True</CC>
...
</BB>
<BB>
<CC>True</CC>
...
</BB>
</DD>
<EE>
<BB>
<CC>False</CC>
...
</BB>
<BB>
<CC>False</CC>
...
</BB>
</EE>
</AA>
Я просто изо всех сил, чтобы найти XPath s для размещения в атрибутах соответствия, где в настоящее время я размещаю XXX и YYY. Кто-нибудь получил ответ?
В основном я хочу выбрать все узлы, у которых есть дочерний узел, который содержит определенное содержимое.
Спасибо. Синтаксис 'BB [CC = 'True']' был тем, что я искал. Мне нужно было сделать больше, чем предлагал оригинальный вопрос, именно эта штука сильно меня повесила. Спасибо за четкий ответ и хороший пример ввода/вывода. – user17753
@ user1169578 - Тебе очень рады. +1 за хороший вопрос. –