как добавить атрибут в существующий xml с помощью vbscript

У меня ниже xml, и я использую VBSript для его создания.

<?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>

Теперь у меня есть URL-адрес страницы (/english/destinations_offers/destinations/asiapacific/maldives.aspx), он будет показан после сопоставления идентификатора, например, ниже псевдокода

Из приведенного выше идентификатора XML будет сопоставлен, а затем мы добавим атрибут pageURL к приведенному выше xml. Таким образом, вывод будет выглядеть следующим образом:

<?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>

Пожалуйста, предложите использовать VBSCript

Спасибо.


person Manoj Singh    schedule 17.08.2010    source источник


Ответы (1)


Вот пример использования 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) 

Применительно к предоставленному вами образцу XML. Он производит следующий вывод.

<?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>
person Garett    schedule 17.08.2010
comment
Большое спасибо, Гаретт, я получаю сообщение об ошибке "требуется объект" в itemNode.attributes.setNamedItem(pageUrl), не могли бы вы предложить мне! - person Manoj Singh; 17.08.2010
comment
Похоже, itemNode не определен. Я отредактировал пример. - person Garett; 17.08.2010