3

この回答を読みまし たが、私の場合にそのサンプルを使用する方法がわかりません。私は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);
4

1 に答える 1

5

一方通行:

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

他の方法で検索することもできます。上記の例では、最初のノード出現のみが選択されることに注意してください。しかし、 SimpleStorageを見ることをお勧めします

これは、OmniXML の操作を大幅に簡素化するインターフェイスのセットです。上記の例は次のようになります。

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

また、SimpleStorage は、OmniXML と XML の使用に関するその他のほぼすべての側面を簡素化します。

于 2012-03-23T06:35:32.677 に答える