标题: [文本处理] [分享]BAT调用PowerShell把单行XML格式美化为多行 [打印本页]
作者: ShowCode 时间: 2023-11-11 21:36 标题: [分享]BAT调用PowerShell把单行XML格式美化为多行
假设有一个UTF-8编码的单行XML文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:sese.024.001.01"><SctiesSttlmTxStsAdvc><Id><Id>22052046</Id><CreDtTm><Dt>2023-11-10</Dt></CreDtTm></Id><TxId><AcctOwnrTxId>231110-001-428738</AcctOwnrTxId><CmonId>22052127</CmonId></TxId><MtchgSts><Umtchd><Rsn><Cd><Cd>CMIS</Cd></Cd></Rsn></Umtchd></MtchgSts></SctiesSttlmTxStsAdvc></Document>
需要把它的格式美化为多行,例如:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:sese.024.001.01">
<SctiesSttlmTxStsAdvc>
<Id>
<Id>22052046</Id>
<CreDtTm>
<Dt>2023-11-10</Dt>
</CreDtTm>
</Id>
<TxId>
<AcctOwnrTxId>231110-001-428738</AcctOwnrTxId>
<CmonId>22052127</CmonId>
</TxId>
<MtchgSts>
<Umtchd>
<Rsn>
<Cd>
<Cd>CMIS</Cd>
</Cd>
</Rsn>
</Umtchd>
</MtchgSts>
</SctiesSttlmTxStsAdvc>
</Document>
脚本 BeautyXML.bat 完整代码:- @echo off
- set "FileOld=1.xml"
- set "FileNew=2.xml"
- cd /d "%~dp0"
- powershell "function fx($xml, $i=2){$SW=New-Object System.IO.StringWriter;$XW=New-Object System.XMl.XmlTextWriter $SW; $XW.Formatting='indented';$XW.Indentation=$i;([xml]$xml).WriteContentTo($XW);$XW.Flush();$SW.Flush();Write-Output $SW.ToString();};FX (Get-Content -Path """%FileOld%""") -i 4" > "%FileNew%"
复制代码
参考:
stackoverflow
dostips
作者: WHY 时间: 2023-11-12 00:05
感谢分享。
更简便的办法:- PowerShell "([xml](gc 1.xml)).Save('2.xml')"
复制代码
作者: Five66 时间: 2023-11-12 07:16
直接用 ie 打开查看更快捷
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |