0

我有一个包含加密密码的配置 XML 文件。有时我们需要重置此密码,这样做的方法包括从 XML 文件中删除实际上是密码的字符串并保存文件。

该过程还涉及停止和重新启动我可以管理的几个服务,但我还没有找到一种搜索和替换字符串的方法,因为它每次都可能不同。

我想在 VBS 中执行此操作(因为这几乎是我在脚本世界中所熟悉的所有内容),但很高兴考虑以其他方式执行此操作。

我已经查看了替换功能,但我还没有找到将通配符放入搜索条件的方法。我需要能够搜索:

<A>randomstuff</A>

并替换为:

<A></A>

对于可能熟悉这种情况的人,我正在重置 Websense Enterprise Manager 的密码。

XML 文件似乎是 v1.0:

<?xml version="1.0" encoding="UTF-8"?>

谢谢。汤姆

4

3 回答 3

1

永远不要使用正则表达式来解析 XML。他们远不适合这项任务。您应该寻找的解决方案是如何使用 VBScript 解析 XML,这非常简单。

这是一个示例脚本,它将解析 XML 文件并替换特定密码元素中的文本。

Set xml = CreateObject("Msxml2.DOMDocument.6.0")
xml.Load "C:\doc.xml"
Set password = xml.SelectSingleNode("//root/element/password")
password.Text = "Hello, world"
xml.Save "C:\doc.xml"

这是脚本将处理的示例 XML 文件。

<root>
    <element>
        <password>Example password</password>
    </element>
</root>

脚本的重要部分是“SelectSingleNode”方法。这使用 XPath 语法在 XML 文档中搜索我们想要的元素。XPath 语法非常简单,可以在网上找到任何数量的参考资料。

于 2009-01-07T17:54:03.970 回答
1

也许是一个正则表达式

我通常不会推荐它们来解析 xml/html 文件,但如果你的 xml 非常具体,你可能会没事。

于 2009-01-06T17:36:32.147 回答
0

或者,如果您在 Windows 机器上,使用单行 powershell 命令可能会更快更容易

(Get-Content doc.xml) -replace '<a>.*</a>','<a></a>' | Set-Content doc.xml

然后您可以一路学习 Powershell 以添加到您的简历中!

于 2015-11-23T05:39:32.790 回答