Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 重命名有两个相同节点的子节点_Xml_Vbscript - Fatal编程技术网

Xml 重命名有两个相同节点的子节点

Xml 重命名有两个相同节点的子节点,xml,vbscript,Xml,Vbscript,我正在尝试重命名父节点中存在两个子节点的其中一个子节点,并使用更新的信息创建一个新的XML文件。可能有一个父节点具有一个子节点,但如果存在具有相同名称的第二个子节点,我想将其重命名为类似的名称。我有一些代码读取整个XML文件并重命名节点,但我知道这不是正确的方法 例如,XML数据看起来类似于以下内容: 价值 价值 VBScript: Dim objFSO、objTextFile、strText、strNewText、objNewFile Dim strOriginalFile、strTempFi

我正在尝试重命名父节点中存在两个子节点的其中一个子节点,并使用更新的信息创建一个新的XML文件。可能有一个父节点具有一个子节点,但如果存在具有相同名称的第二个子节点,我想将其重命名为类似的名称。我有一些代码读取整个XML文件并重命名节点,但我知道这不是正确的方法

例如,XML数据看起来类似于以下内容:

价值 价值 VBScript:

Dim objFSO、objTextFile、strText、strNewText、objNewFile Dim strOriginalFile、strTempFile strOriginalFile=c:\XML\u File.XML strTempFile=c:\temp.xml 设置objFSO=CreateObjectScripting.FileSystemObject 设置objNewFile=objFSO.CreateTextFilestrTempFile 设置objTextFile=objFSO.OpenTextFile strOriginalFile,1 strText=objTextFile.ReadAll strNewText=ReplacestrText,,vbTextCompare objNewFile.Write strNewText objTextFile.Close objNewFile.Close 使用符号,您可以基于上下文访问子节点。循环遍历每个子节点,将其替换为枚举节点,该节点是旧节点的深度副本

设置xml=CreateObjectMicrosoft.XMLDOM xml.async=False count_var=1 如果xml.LoadC:\file.xml,则 对于xml.SelectNodes//Accounts中的每个accountCollection 对于accountCollection中的每个帐户。选择Nodes./account 如果count_var>1,则 设置accountEnum=xml.createNode1,Account&count\u var, 对于account.childNodes中的每个子节点 accountEnum.appendChildchild.cloneNodeTRUE 下一个 accountCollection.replaceChild accountEnum,帐户 saveC:\file.xml 如果结束 count\u var=count\u var+1 下一个 count_var=1 下一个 如果结束 输入:

测验 000 测试1 输出


要设置代码格式,请执行以下操作:阻止文本,然后按CTRL键+K@har07-非常感谢我能与之合作并从中学习的东西。不幸的是,它将第二个子节点的开始节点重命名为,结束子节点重命名为,时间应为和。它还删除了子节点之间的所有内容。非常感谢您的努力。也许要修复关闭的子节点,我可以重新运行脚本两次。这就是为什么我在其中添加了注释,您必须复制要替换的节点的属性/文本。表示没有指定属性或文本的独立节点。请给我一个快速示例,说明如何在值之间复制其他节点和值。非常感谢!效果很好。这真是个好工作。我认为你所做的将使我能够在你的基础上再接再厉。谢谢你的帮助。你把我送到了正确的方向。谢谢,非常感谢!
<Accounts>
    <Account>test</Account>
    <Account2>
        <ID>000</ID>
        <CONFIG type="binary" name="test"/>
    </Account2>
    <Account3>test1</Account3>
</Accounts>