how to add a attribute in existing xml using vbscript
문제
I have below xml and I am using VBSript to generate it.
<?xml version="1.0"?>
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ID="tcm:481-86880-2" Managed="10682">
<tcm:Item ID="tcm:481-594051"/>
<tcm:Item ID="tcm:481-594088"/>
<tcm:Item ID="tcm:481-594089"/>
<tcm:Item ID="tcm:481-594090"/>
<tcm:Item ID="tcm:481-594343"/>
<tcm:Item ID="tcm:481-594344"/>
<tcm:Item ID="tcm:481-594578"/>
</tcm:ListItems>
Now I have got a pageURL (/english/destinations_offers/destinations/asiapacific/maldives.aspx), this will be shown after matching the ID for example below pseudocode
From above XML ID will be matched and then we will add the pageURL attribute to above xml. So the output will come as below:
<?xml version="1.0"?>
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ID="tcm:481-86880-2" Managed="10682">
<tcm:Item ID="tcm:481-594051"/>
<tcm:Item ID="tcm:481-594088"/>
<tcm:Item ID="tcm:481-594089"/>
<tcm:Item ID="tcm:481-594090"/>
<tcm:Item ID="tcm:481-594343" pageURL="/english/destinations_offers/destinations/asiapacific/maldives.aspx"/>
<tcm:Item ID="tcm:481-594344"/>
<tcm:Item ID="tcm:481-594578"/>
</tcm:ListItems>
Please suggest using VBSCript
Thanks.
해결책
Here's an example using MSXML.
Dim doc
Dim pageUrl
Dim itemNode
Set doc = CreateObject("MSXML2.DOMDocument")
doc.load("test.xml")
doc.setProperty "SelectionNamespaces", "xmlns:tcm='http://www.tridion.com/ContentManager/5.0'"
Set itemNode = doc.selectSingleNode("/tcm:ListItems/tcm:Item[@ID = 'tcm:481-594343']")
Set pageUrl = doc.createAttribute("pageURL")
pageUrl.Value = "/english/destinations_offers/destinations/asiapacific/maldives.aspx"
itemNode.attributes.setNamedItem(pageUrl)
When applied to the XML sample you provided. It produces the following output.
<?xml version="1.0"?>
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ID="tcm:481-86880-2" Managed="10682">
<tcm:Item ID="tcm:481-594051"/>
<tcm:Item ID="tcm:481-594088"/>
<tcm:Item ID="tcm:481-594089"/>
<tcm:Item ID="tcm:481-594090"/>
<tcm:Item ID="tcm:481-594343" pageURL="/english/destinations_offers/destinations/asiapacific/maldives.aspx"/>
<tcm:Item ID="tcm:481-594344"/>
<tcm:Item ID="tcm:481-594578"/>
</tcm:ListItems>
제휴하지 않습니다 StackOverflow