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



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

这是我的原始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

相关内容

  • 没有找到相关文章

最新更新