替换xml文本
我有一个包含以下标记的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">
<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>