簡體   English   中英

如何刪除omnixml delphi中的特定節點

[英]How to delete specific node in omnixml delphi

我已經閱讀了這個答案,但我不知道如何在我的案例中使用該樣本。 我有一個xml文件

 <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的節點?


我很抱歉,我想我不清楚我的問題,我的不好,我的問題是如何刪除這一部分:

 <Data>            
    <PN>BBBB</PN>
    <FN>2222</FN>
 </Data>

不僅是這一節

<PN>BBBB</PN>

答案:感謝Runner,我修改了他的一些代碼

  DeleteNode := XMLDoc.DocumentElement.SelectSingleNode('/Archive/DataList/Data[PN="BBBB"]');
  DeleteNode.ParentNode.RemoveChild(DeleteNode);

單程:

  DeleteNode := OmniXML.DocumentElement.SelectSingleNode('//[PN=''BBBB'']');
  DeleteNode.ParentNode.RemoveChild(DeleteNode);

您可以以任何其他方式搜索它。 請注意,上面的示例僅選擇第一個節點出現。 但我建議你看一下SimpleStorage

這是一組接口,極大地簡化了OmniXML的使用。 以上示例將是:

SimpleStorage.Remove('//[PN=''BBBB'']');

SimpleStorage還簡化了使用OmniXML和XML的幾乎所有其他方面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM