xml - 使用批处理文件编辑 XML

标签 xml batch-file

我想知道是否有任何方法可以创建一个批处理文件来编辑 XML 文档中的一行。该行将由前面的行标识。这个想法如下:

If line == Csetting name="BaseDirectory" serializeAs="String">
    Next line = <value>User Input from begining of batch</value>

这样的事情甚至是可能的,还是我做梦超出了我的能力范围?感谢您的帮助和回答。

最佳答案

您可能可以在一个以某种方式工作的批处理文件中破解一些东西。但会异常痛苦。首先,我知道没有办法可靠地将行读入批处理文件中的变量并将它们原封不动地写回到文件中。您可以转义大部分有问题的字符(例如 <>&| 、...),但仍有问题我无法解决1 (例如不匹配的引号)将导致此类尝试可怕地失败。然后您仍然无法解析 XML,但您宁愿使用原始文本处理,一旦使用单引号而不是双引号,它很容易失败。或者在某处扔了一个额外的空间。或者您要查找的行被分成几行。所有有效的 XML,但在没有 XML 解析器的情况下解析起来很痛苦。

批处理文件语言并不真正适合此类任务。哎呀,它几乎不能用于文本处理,但 XML 远远超出了。使用 VBScript 和 MSXML 甚至 PowerShell(如果适用)可能会带来更多运气(和乐趣)。

VBScript 可能是这里最明智的选择,因为您可以依赖它存在于几乎任何现代 Windows 机器上。

您还可以使用 XSLT 并从命令行调用它。有足够多的 XSLT 处理器可供使用,生成 XSLT 文件实际上要简单得多(但仍需要多次转义)。


1 请注意,我可能是高级批处理文件用户/程序员,但绝不是权威人士。也许这很容易实现,只是我太笨了,看不到它。

关于xml - 使用批处理文件编辑 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946717/

相关文章:

bat 文件中的 Linux 命令 - 别名

Windows 批处理脚本 : Pipe text into a command line application

windows - 用于替换多个文件中特定字符串的批处理脚本

windows - 在指定时间后停止批处理脚本的最佳方法是什么?

javascript - 如何从 Node Sax 中的 XML 文件读取 CDATA

java - XMLStreamReader 编码

android - 从另一个 xml 获取 linearLayout Android

c# - 将具有相同地址的多个命名空间添加到 XDocument

java - 如何给根节点添加属性

windows - 在外部exe程序上跳过 'press any key to continue'