替换xml文本

替换xml文本,xml,vbscript,Xml,Vbscript,我有一个包含以下标记的xml文件: <gmd:title> <gco:CharacterString>READER FOREVER LEADER</gco:CharacterString> </gmd:title> 如何使用vbScript实现这一点?在来自的帮助下,我修改了来自的答案,以获得: 输出: <gmd:title xmlns:gmd="urn:x:y:z:1" xmlns:gco="urn:x:y:z:1">

我有一个包含以下标记的xml文件:

<gmd:title>
    <gco:CharacterString>READER FOREVER LEADER</gco:CharacterString>
</gmd:title>

如何使用vbScript实现这一点?

在来自的帮助下,我修改了来自的答案,以获得:

输出:

<gmd:title xmlns:gmd="urn:x:y:z:1" xmlns:gco="urn:x:y:z:1">
        <gco:CharacterString>READER FOREVER LEADER</gco:CharacterString>
</gmd:title>

-----------------
READER FOREVER LEADER
-----------------
<gmd:title xmlns:gmd="urn:x:y:z:1" xmlns:gco="urn:x:y:z:1">
        <gco:CharacterString>Abracadabra</gco:CharacterString>
</gmd:title>

读者永远的领袖
-----------------
读者永远的领袖
-----------------
阿布拉卡达拉

查看此处,看看使用SelectionNamespaces属性是否能正确解决您的问题。我希望您能就此提出一个规范的问题和答案,而不是每次提出问题时都给出相同的答案。您可以将Q和A设置为MSXML级别,其他答案可以转换为不同的语言和/或平台(例如VBScript)。请参阅“”,了解一个流行的规范问答示例-为我赢得了两枚金徽章,顺便说一句。亲爱的Ekkehard Horner,在运行您编写的代码时,输出为“/gmd:title/gco:CharacterString”,未找到。代码似乎找不到通向标题文本的正确路径。你怎么说?谢谢你的帮助time@HelpOverFlow-我说:您发布的XML片段不包含根
gmd:title
-正如我的示例所做的那样,XPath表达式(标记前导/)假定的那样。
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("albums.xml")
Set Elem = objXMLDoc.documentElement.selectSingleNode("gco:CharacterString") 
 MsgBox(Elem.text)
  Dim oFS    : Set oFS  = CreateObject("Scripting.FileSystemObject")
  Dim sFSpec : sFSpec   = goFS.GetAbsolutePathName("..\testdata\xml\so15393560.xml")
  Dim sNS    : sNS      = "xmlns:gmd='urn:x:y:z:1'  xmlns:gco='urn:x:y:z:1'"
  Dim oXML   : Set oXML = CreateObject("Msxml2.DOMDocument")
  oXML.setProperty "SelectionLanguage", "XPath"
  oXML.setProperty "SelectionNamespaces", sNS
  oXML.async = False
  oXML.load sFSpec
  If 0 = oXML.parseError Then
     WScript.Echo oXML.xml
     WScript.Echo "-----------------"
     Dim sXPath : sXPath    = "/gmd:title/gco:CharacterString"
     Dim ndFnd  : Set ndFnd = oXML.selectSingleNode(sXPath)
     If ndFnd Is Nothing Then
        WScript.Echo sXPath, "not found"
     Else
        WScript.Echo ndFnd.text
        WScript.Echo "-----------------"
        ndFnd.text = "Abracadabra"
        WScript.Echo oXML.xml
     End If
  Else
     WScript.Echo oXML.parseError.reason
  End If
<gmd:title xmlns:gmd="urn:x:y:z:1" xmlns:gco="urn:x:y:z:1">
        <gco:CharacterString>READER FOREVER LEADER</gco:CharacterString>
</gmd:title>

-----------------
READER FOREVER LEADER
-----------------
<gmd:title xmlns:gmd="urn:x:y:z:1" xmlns:gco="urn:x:y:z:1">
        <gco:CharacterString>Abracadabra</gco:CharacterString>
</gmd:title>