xml - 如何通过标签(Pretty Print)使用批处理脚本标签来格式化 XML?
问题描述
假设我在一个文件中有以下格式:
`<xml><tag><othertag>ABC</othertag></tag></xml>`
但我需要以下格式化输出:
<xml>
<tag>
<othertag>ABC</othertag>
</tag>
这个格式化的输出我需要它在其他文件中。
帮助我处理能够进行此类格式化的批处理脚本。
解决方案
不应通过批处理文件处理 XML 文件。但是,这个特定的示例让我有机会使用批处理文件获得一些乐趣,并且它有效!;)
@echo off
setlocal EnableDelayedExpansion
for /F "tokens=2 delims=`" %%a in (input.txt) do set "format=%%a"
for /F %%a in ('copy /Z "%~F0" NUL') do set NL=%%a^
% Don't remove %
% these lines %
set "SP= "
set "format=%format:></=>^!NL^!^!SP:~0,-8^!" ^& set "SP=^!SP:~0,-4^!" ^& set /P "=</%"
< NUL (set /P "=%format:><=>!NL!!SP!" & set "SP= !SP!" & set /P "=<%" & echo/) > output.txt
输出:
<xml>
<tag>
<othertag>ABC</othertag>
</tag>
</xml>
有关所用方法的说明,请参阅此线程。
推荐阅读
- r - 制作带两个变量的面积图
- python - 在 Pycharm 中使用 StanfordCoreNLP 时 psutil.AccessDenied?
- java - Gradle Jar 按预期工作,但 Gradle Run 失败
- c# - 如何将 txt 文件中的数据加载到 C# Windows 窗体中的列表视图中
- css - Flex 布局的圣杯内容不会在 IE11 上增长
- postgresql - 无需 CROSS JOIN 即可完成我所需要的
- php - 在laravel上删除图像时如何清除客户端缓存?
- android - 如何禁用单选按钮上的双击事件?
- javascript - 如何通过异步等待在严格模式下正确使用集合
- c++ - 报告定义的函数中的错误