如何使用Delphi在XML文件中搜索和替换标签值?
我知道XML标签是什么,但其值是随机的,只需要重置为默认值,因此实际上我不能/不应该搜索值,而只能搜索标签。 我还知道文件/文件的位置。
作为Delphi的新手,有人可以为我提供一个简单的示例吗?
提前感谢您。
我会使用Delphi的IXMLDocument
加载XML文件,并使用该文档替换元素。代码如下:
uses
XMLDoc,
XMLIntf;
procedure ChangeTag(const filename : String);
var
doc : IXMLDocument;
parent : IXMLNode;
toReplace : IXMLNode;
replacement : IXMLNode;
begin
doc := LoadXMLDocument(filename);
parent := doc.DocumentElement.ChildNodes.FindNode('parent');
toReplace := parent.ChildNodes.FindNode('toReplace');
replacement := doc.CreateElement('replacement', '');
replacement.Text := toReplace.Text;
parent.ChildNodes.ReplaceNode(toReplace, replacement);
doc.SaveToFile(filename);
end;
最好的选择是使用一个XML解析器,例如:
var
Regex: TPerlRegEx;
Regex := TPerlRegEx.Create(nil);
Regex.RegEx := '<yourtag>.*?</yourtag>';
Result := objRegEx.Replace(inputString, replacementString, true);
您可以在这里获取TPerlRegex组件。