【问题标题】:how to add a attribute in existing xml using vbscript如何使用 vbscript 在现有 xml 中添加属性
【发布时间】:2011-03-30 19:24:11
【问题描述】:

我有下面的 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>

现在我有一个 pageURL (/english/destinations_offers/destinations/asiapacific/maldives.aspx),这将在匹配 ID 后显示,例如下面的伪代码

从上面的 XML ID 将被匹配,然后我们将 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

谢谢。

【问题讨论】:

    标签: xml vbscript tridion


    【解决方案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>
    

    【讨论】:

    • 非常感谢 Garett,我在 itemNode.attributes.setNamedItem(pageUrl) 上收到 object required 错误,你能建议我吗!
    • itemNode 好像没有定义。我编辑了示例。
    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多