>我只想选择子节点值与某个值匹配的节点。
这是我的原始XML:
这是我的原始 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>
我想提取名称='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。
请提供任何指导。我被困在如何为不匹配的其他子节点删除所有子节点上。
问候拉胡尔
以下内容将选择子节点"名称"等于 AAA 的所有入口节点。
//Entry[Name = "AAA"]
尝试这样的事情(添加列表元素以获得格式正确的 xml):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<List>
<xsl:apply-templates select="//Entry[Name='AAA']"/>
</List>
</xsl:template>
<xsl:template match="Entry">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
怎么样
//Name[text()='AAA']/..
找到文本内容为 AAA 的所有Name
节点,然后向上移动一级到 Name 的父节点,即 Entry
。