首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除omnixml中的特定节点

如何删除omnixml中的特定节点
EN

Stack Overflow用户
提问于 2012-03-23 02:58:49
回答 1查看 1.2K关注 0票数 3

我读过这个答案,但我不知道如何在我的例子中使用这个示例。我有一个xml文件

代码语言:javascript
复制
 <Archive>                                  
  <Source>                               
     <Name>321</Name>                   
     <BatchID>123</BatchID>    
  </Source>                              
  <DataList>                             
     <Data>            
        <PN>AAAA</PN>
        <FN>1111</FN>
     </Data>
     <Data>            
        <PN>BBBB</PN>
        <FN>2222</FN>
     </Data>
  </DataList>                            
</Archive>

如何删除具有PN=BBBB的节点?

对不起,我想我的问题不太清楚,我的错,我的问题是如何删除这一部分:

代码语言:javascript
复制
 <Data>            
    <PN>BBBB</PN>
    <FN>2222</FN>
 </Data>

不仅仅是这一节

代码语言:javascript
复制
<PN>BBBB</PN>

答案:多亏了Runner,我修改了他的一些代码

代码语言:javascript
复制
  DeleteNode := XMLDoc.DocumentElement.SelectSingleNode('/Archive/DataList/Data[PN="BBBB"]');
  DeleteNode.ParentNode.RemoveChild(DeleteNode);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 06:35:32

单程:

代码语言:javascript
复制
  DeleteNode := OmniXML.DocumentElement.SelectSingleNode('//[PN=''BBBB'']');
  DeleteNode.ParentNode.RemoveChild(DeleteNode);

你可以用任何其他方式去寻找它。请注意,上面的示例将只选择第一个节点出现。但我建议你看看SimpleStorage

这是一组接口,极大地简化了OmniXML的工作。然后,上面的例子是:

代码语言:javascript
复制
SimpleStorage.Remove('//[PN=''BBBB'']');

通常,SimpleStorage还简化了使用OmniXML和XML的几乎所有其他方面。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9833597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档