我在编写 C# 脚本时遇到问题,该脚本将为我提供给定子元素的某个父元素。为了清楚起见,这是 XML 树的一个示例。
<parent attribute='X'>
<child_element1>A</child_element1>
<child_element2 attribute='Y'>
<grandchild_element1>B</grandchild_element1>
<grandchild_element2>
<key>C</key>
</grandchild_element2>
<grandchild_element3>D</grandchild_element3>
</child_element2>
<child_element3>E</child_element3>
</parent>
遍历树,我的脚本找到了<key>
节点。我想要制作的是以下树。
<parent attribute='X'>
<child_element2 attribute='Y'>
<grandchild_element1>B</grandchild_element1>
<grandchild_element2>
<key>C</key>
</grandchild_element2>
<grandchild_element3>D</grandchild_element3>
</child_element2>
</parent>
如您所见,我正在尝试删除原始树中的child_element1
和。child_element3
我已经为脚本编写了一个伪代码,如下所示,但到目前为止还没有弄清楚如何在 C# 中编写真实的东西。
- 显示关键节点上方的所有第一个和第二个父元素。
grandchild_element2
是 key 的第一个父级,是 keychild_element2
的第二个父级。所以他们的所有元素都显示出来了。 - 仅显示与下一个父级别的键有直接关系的节点/元素。
parent
是 key 的第三个父母。与键有直接关系的parent
元素是child_element2
。所以只child_element2
显示。child_Element1
并且child_element2
没有显示,因为它们与键没有直接关系
我在 stackoverflow 上查看了以下解决方案,但不幸的是,它们都只显示了如何获取所有父元素(而不是显示<key>
节点的祖先元素。