我试图通过XSLT到相当复杂的XML文件转换为XML,因此将只排除在输出的第二孙节点之前的XML文档的副本。希望使用XSLT有一个简单的解决方案。XSLT XML到XML选择特定节点
这里是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的答案是正确的。请接受正确的答案。 – 2012-08-09 01:28:24
@DimitreNovatchev,他评论说,他试图删除特定的独特节点。我已经更新了我的答案,以便更清楚一点。 – 2012-08-09 05:38:45
@DerekHunziker,是的,我看到一个更正。但是你也指的是不存在的'祖孙节点[5]' - 这不是奇怪的吗? – 2012-08-09 11:53:46