【问题标题】:How can I search for a varying string in an XML file using VBS and replace it with another string如何使用 VBS 在 XML 文件中搜索不同的字符串并将其替换为另一个字符串
【发布时间】:2010-09-29 20:48:46
【问题描述】:

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

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

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

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

<A>randomstuff</A>

并替换为:

<A></A>

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

XML 文件似乎是 v1.0:

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

谢谢。 汤姆

【问题讨论】:

    标签: xml vbscript replace find


    【解决方案1】:

    也许是regular expression

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

    【讨论】:

      【解决方案2】:

      永远不要使用正则表达式来解析 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 语法非常简单,可以在网上找到任意数量的参考。

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-06
          • 2023-03-30
          • 1970-01-01
          • 2022-08-17
          • 1970-01-01
          • 2012-07-08
          • 2019-03-28
          • 2012-07-17
          相关资源
          最近更新 更多