gpt4 book ai didi

xml - 在 XML 文件中添加新行

转载 作者:可可西里 更新时间:2023-11-01 09:28:20 30 4
gpt4 key购买 nike

我有一个 XML 文件。
我想使用批处理脚本向 XML 添加新行。

xml 文件的示例是:

<MyXML flag="0">
<MyRow Path="C:\a.txt" DisplayName="a"/>
<MyRow Path="C:\b.txt" DisplayName="b"/>
</MyXML>


运行批处理文件后:
:

 <MyXML flag="0">
<MyRow Path="C:\a.txt" DisplayName="a"/>
<MyRow Path="C:\b.txt" DisplayName="b"/>
<MyRow Path="C:\c.txt" DisplayName="c"/>
</MyXML>

如何使用批处理脚本来完成?

最佳答案

最好将 XML 解析为 XML,而不是将其解析为可预测格式的平面文本以进行破解和抓取。这是一个非常基本的批处理 + PowerShell 混合脚本,它将准确演示您的要求。

<# : batch portion
@echo off
setlocal

set "xmlfile=test.xml"

powershell -noprofile "iex (${%~f0} | out-string)"
goto :EOF

: end batch / begin PowerShell #>

[xml]$xml = gc $env:xmlfile
$add = $xml.createElement('MyRow')
$add.setAttribute('Path', 'C:\c.txt')
$add.setAttribute('DisplayName', 'c')
$xml.MyXML.appendChild($add)
$xml.Save($env:xmlfile)

...或者如果您更喜欢批处理 + JScript 混合:

@if (@CodeSection == @Batch) @then
@echo off
setlocal

set "xmlfile=test.xml"

cscript /nologo /e:JScript "%~f0" "%xmlfile%"
goto :EOF

@end // end batch / begin JScript

var xml = WSH.CreateObject('MSXML2.DOMDocument.6.0');
xml.load(WSH.Arguments(0));
var add = xml.createElement('MyRow');
add.setAttribute('Path', 'C:\\c.txt');
add.setAttribute('DisplayName', 'c');
xml.selectSingleNode('//MyXML[@flag=0]').appendChild(add);
xml.save(WSH.Arguments(0));

关于xml - 在 XML 文件中添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462838/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com