我想删除rowpath部分中包含pathid="2"的行...
<?xml version="1.0" encoding="utf-8"?>
<LostPath Condition="Active" Selected="train.exe" FullPathOfSelected="D:\mygames\arcade\train\" Selected="0">
<rowdir Name="train.exe" GamePath="D:\mygames\arcade\train\" Selected="0" />
<rowdir Name="othelo.exe" GamePath="D:\mygames\arcade\othello\" Selected="3"/>
<rowpath Name="train.exe" PathId="1" LevelPath="D:\mygames\arcade\train\levelpack1" levelsFound="27" />
<rowpath Name="train.exe" PathId="2" LevelPath="D:\mygames\arcade\train\levelpack21" levelsFound="19" />
<rowpath Name="othelo.exe" PathId="0" LevelPath="D:\mygames\arcade\othelo\levelpack1" levelsFound="11" />
</LostPath>我该怎么做呢?
发布于 2011-09-29 18:07:32
试着用这个。
uses
OmniXML, OmniXMLUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
XMLNode: IXMLNode;
XMLDocument: IXMLDocument;
begin
XMLDocument := CreateXMLDoc;
if XMLLoadFromFile(XMLDocument, 'XMLFile.xml') then
begin
XMLNode := XMLDocument.SelectSingleNode('/LostPath');
DeleteNode(XMLNode, 'rowpath[@PathId="2"]');
XMLDocument.Save('XMLFile.xml');
end;
end;发布于 2011-09-30 14:56:00
有几种方法可以删除具有相同属性值的所有节点。这就是其中之一。但是请注意,这篇文章没有回答这个问题,。这应该作为另一个问题来问。
uses
OmniXML, OmniXMLUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
XMLNode: IXMLNode;
XMLDocument: IXMLDocument;
begin
XMLDocument := CreateXMLDoc;
if XMLLoadFromFile(XMLDocument, 'XMLFile.xml') then
begin
XMLNode := XMLDocument.SelectSingleNode('/LostPath');
DeleteAllChildren(XMLNode, 'rowpath[@Name="train.exe"]');
XMLDocument.Save('XMLFile.xml');
end;
end;https://stackoverflow.com/questions/7594992
复制相似问题