修改xml文件
如果我有一个如下所示的xml文件:修改xml文件,xml,Xml,如果我有一个如下所示的xml文件: <?xml version="1.0" encoding="UTF-8"?> <installerDefaults pathToAllUsers="C:\ProgramData\prog"> <databaseConnector> <localDatabasePath>C:\ProgramData\prog\tracking.db3</localDatabasePath>
<?xml version="1.0" encoding="UTF-8"?>
<installerDefaults pathToAllUsers="C:\ProgramData\prog">
<databaseConnector>
<localDatabasePath>C:\ProgramData\prog\tracking.db3</localDatabasePath>
</databaseConnector>
<defaultLocales>
<installerDefaultLocale>en-US</installerDefaultLocale>
</defaultLocales>
<directories>
<languageDataBasePath>C:\ProgramData\prog\Content</languageDataBasePath>
</directories>
</installerDefaults>
C:\ProgramData\prog\tracking.db3
恩美
C:\ProgramData\prog\Content
我想在所有三个实例中将字符串“C:\ProgramData\prog”更改为其他内容,如何修改它,使我只做一次更改,而它会更改所有三个实例?事实上,如果我能改变“prog”并保留其他内容,那就更好了
我没有使用任何语言,我只是在文本编辑器中编辑文件。也许我问的不可能。难道没有连接字符串的方法吗,例如伪xml
s = "C:\ProgramData\abcdefg\"
<installerDefaults pathToAllUsers = s>
<localDatabasePath>s + "tracking.db3"</localDatabasePath>
<languageDataBasePath>s + Content</languageDataBasePath>
s=“C:\ProgramData\abcdefg”
s+“tracking.db3”
s+内容
因此,当读入它的程序查找localDatabasePath的值时,它得到的是C:\ProgramData\abcdefg\tracking.db3
这可能吗?这完全取决于你想要多严格。在这种情况下,在任何文本编辑器中进行简单的查找/替换都可以完成这项工作。文本操作脚本语言(如sed或perl)允许您从命令行执行相同的操作 这些方法的问题在于,它们不会轻易扩展到更一般的问题。考虑改变
C:\ProgramData\directories\Content
到
也很容易意外地更改XML标记
<directories>
也是。一般来说,转换XML需要理解XML的工具
因此,您确实需要一些能够理解XML的东西,而这正是可以使用XSLT的地方。您可以从中获得命令行处理器,并且有XSLT教程
这是相当多的学习内容,但是如果您正试图培养技能,那么它将帮助您解决更复杂的XML操作问题。看看XML实体;e、 g.如图所示:
实体允许您在XML文件头的一个位置定义值或元素结构,并在正文中的多个点使用它。XML文件也可以使用在别处定义的实体。您还没有包含任何有关环境的信息。这种更改将适用于类似于
sed
或perl
的内容,并使用正则表达式查找和更改您想要的引用
<directories>