根据XSLT中的子节点值选择节点

时间:2012-09-24 02:00:42

标签: xml xslt xpath xslt-1.0

我想只选择子节点值与某个值匹配的节点。

这是我的原始XML:

这是我的orig XML

<Entry>
 <Name>AAA</Name>
 <line id="1">A</line>
 <line id="2">B</line>
</Entry>
<Entry>
 <Name>BBB</Name>
 <line id="1">C</line>
 <line id="2">D</line>
</Entry>
<Entry>
 <Name>AAA</Name>
 <line id="1">E</line>
 <line id="2">F</line>
</Entry>
<Entry>
 <Name>CCC</Name>
 <line id="1">G</line>
 <line id="2">H</line>
</Entry>

我想提取Name ='AAA'的所有条目,结果将是:

<Entry>
 <Name>AAA</Name>
 <line id="1">A</line>
 <line id="2">B</line>
</Entry>
<Entry>
 <Name>AAA</Name>
 <line id="1">E</line>
 <line id="2">F</line>
</Entry>

我只能使用XSLT 1.0。

请提供任何指导。我被困在如何丢弃所有不匹配的子节点上。

的问候, 拉胡

2 个答案:

答案 0 :(得分:15)

以下将选择子节点“名称”等于AAA的所有入口节点。

//Entry[Name = "AAA"]

答案 1 :(得分:2)

怎么样

//Name[text()='AAA']/..

找到文本内容为AAA的所有Name个节点,然后将一个级别向上移动到Name的父节点,即Entry