【发布时间】:2012-08-09 13:46:14
【问题描述】:
我正在尝试通过 XSLT 将一个非常复杂的 XML 文件转换为 XML,因此它将是前一个 XML 文档的副本,仅在输出中排除了第二个孙节点。希望有一个使用 XSLT 的简单解决方案。
这是我尝试转换的 XML 示例:
<cases>
<Parent>
<text1>Text1</text1>
<text2>Text2</text2>
<text3>Text3</text3>
<Child_node>
<Grandchild_node>
<gctext1>Sample text 1</gctext1>
<gctext2>Sample text 2</gctext2>
<gctext3>Sample text 3</gctext3>
<Great_grandchild_node>
<ggctext1>Great grandchild text 1</ggctext1>
</Great_grandchild_node>
</Grandchild_node>
<Grandchild_node>
<gctext1>More Sample text 1</gctext1>
<gctext2>Different Sample text 2</gctext2>
<gctext3>More Sample text 3</gctext3>
<Great_grandchild_node>
<ggctext1>Great grandchild text 2</ggctext1>
</Great_grandchild_node>
</Grandchild_node>
</Child_node>
</Parent>
</cases>
我希望输出显示除第二个 Grandchild_node 中包含的信息之外的所有内容。我想要实现的输出示例:
<cases>
<Parent>
<text1>Text1</text1>
<text2>Text2</text2>
<text3>Text3</text3>
<Child_node>
<Grandchild_node>
<gctext1>Sample text 1</gctext1>
<gctext2>Sample text 2</gctext2>
<gctext3>Sample text 3</gctext3>
<Great_grandchild_node>
<ggctext1>Great grandchild text 1</ggctext1>
</Great_grandchild_node>
</Grandchild_node>
</Child_node>
</Parent>
</cases>
任何帮助将不胜感激。
【问题讨论】:
-
您选择的答案是错误的——它删除了第一个,而不是第二个
Grandchild_node。 @TimC 的答案是正确的。请接受正确的答案。 -
@DimitreNovaatchev,他评论说他正在尝试删除特定的唯一节点。我已经更新了我的答案,使其更加清晰。
-
@DerekHunziker,是的,我看到一个更正。但是,您还指的是不存在的
Grandchild_node[5]- 这不是很奇怪吗? -
为什么这么奇怪?这是一个示例,就像提供的 XML 源一样。重点显然是演示一种技术,而不是为特定的输入文档提供特定的解决方案,这显然是不可能仅使用示例 XML 文档实现的。