如何查找特定的XML节点并删除其父节点?

如何查找特定的XML节点并删除其父节点?,xml,vb6,xml-parsing,Xml,Vb6,Xml Parsing,我有一个这样的XML文件 <abc> <ab>value</ab> <aa>time</aa> <ac>money</ac> </abc> <abc> <ab>right</ab> <aa>left</aa> <ac>straight</ac> </abc> 价值 时间 钱 正确

我有一个这样的XML文件

<abc>
  <ab>value</ab>
  <aa>time</aa>
  <ac>money</ac>
</abc>
<abc>
  <ab>right</ab>
  <aa>left</aa>
  <ac>straight</ac>
</abc>

价值
时间
钱
正确的
左边
直的
我想要的是,我能够找到一个值为“left”的节点,然后删除它的父节点,这样我最后得到的是

<abc>
  <ab>value</ab>
  <aa>time</aa>
  <ac>money</ac>
</abc>

价值
时间
钱

如果通过添加文档元素将其更正为有效的XML,请提前感谢:

<doc>
    <abc>
        <ab>value</ab>
        <aa>time</aa>
        <ac>money</ac>
    </abc>
    <abc>
        <ab>right</ab>
        <aa>left</aa>
        <ac>straight</ac>
    </abc>
</doc>

如果通过添加文档元素将其更正为有效的XML:

<doc>
    <abc>
        <ab>value</ab>
        <aa>time</aa>
        <ac>money</ac>
    </abc>
    <abc>
        <ab>right</ab>
        <aa>left</aa>
        <ac>straight</ac>
    </abc>
</doc>

无效的XML,您只能有一个顶级元素!也就是说,我想您可以编写代码来手动解析这个伪XML。我在这里只写了一个psuedo xml。实际上,我需要找到一个特定的节点并将其删除:)无效的XML,您只能有一个顶级元素!也就是说,我想您可以编写代码来手动解析这个伪XML。我在这里只写了一个psuedo xml。实际上,我需要找到一个特定的节点并将其删除:)嗨,即使我使用selectSingleNode也使用相同的逻辑。区别在于我使用的是selectSingleNode(“左”)。额外的(“//*[.='left']”)对我起了作用。如果你不介意的话,你能解释一下区别吗。谢谢鲍勃的帮助。:)XPath专家可能会嘲笑我所用的,我更喜欢一个更好的答案,它能让我自己工作。好吧,这里说的是类似于“(//)从这一点递归递减,(*)任何标记,([])过滤节点,(.)节点本身,(='left')的文本等于'left'”,但我可能错了。哦,我想您更简单的XPath表达式说的是类似于“标记名为'left'的子节点”也许某个善良的灵魂会发布一个指向XPath引用的链接,该引用不是从试图实现XPath解析器但实际使用XPath的角度编写的。区别在于我使用的是selectSingleNode(“左”)。额外的(“//*[.='left']”)对我起了作用。如果你不介意的话,你能解释一下区别吗。谢谢鲍勃的帮助。:)XPath专家可能会嘲笑我所用的,我更喜欢一个更好的答案,它能让我自己工作。好吧,这里说的是类似于“(//)从这一点递归递减,(*)任何标记,([])过滤节点,(.)节点本身,(='left')的文本等于'left'”,但我可能错了。哦,我想您更简单的XPath表达式说的是类似于“标记名为'left'的子节点”也许某个善良的灵魂会发布一个指向XPath引用的链接,该引用不是从试图实现XPath解析器但实际使用XPath的人的角度编写的。