【问题标题】:How to iterate through xml using javascript while altering the document?如何在更改文档时使用 javascript 遍历 xml?
【发布时间】:2012-09-26 22:11:40
【问题描述】:

如何遍历 xml 节点列表 (tag="items"),同时在特定位置插入新节点,在这种情况下,当 chileNode 值更改时 (tag="rowNum") ?这是一个显示我的输入和我想要的输出的示例:

开始xml:

<items>
  <item>
     <rowNum>1</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>some more text</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>some text</description>
  </item>
</items>

期望的输出:

<items>
  <item>
     <rowNum>1</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>some more text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>last row 1 item</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>last row 2 item</description>
  </item>
</items>

【问题讨论】:

    标签: javascript xml iteration insertafter xmlnodelist


    【解决方案1】:
    1. 为 rownum 创建一个变量,其初始值设置为例如-1
    2. 循环遍历项目元素,但从末尾开始
    3. 检查变量值是否与rowNum 元素的内容不同。如果是,则将 variable-value 设置为 rowNum-element 的内容,并在当前 item-element 的 nextSibling 之前插入新节点

    演示:http://jsfiddle.net/doktormolle/n5wUC/

    【讨论】:

    • 感谢莫勒博士!您的解决方案看起来很棒。我正在将它移植到我计划在 Groovy 脚本中运行它的 java 中。再次感谢您的快速解决方案。
    • 我只是想分享一下我在我的 Java Groovy 脚本中成功实现了您的逻辑。再次感谢!
    猜你喜欢
    • 2020-11-12
    • 2014-01-09
    • 1970-01-01
    • 2013-08-28
    • 2013-01-26
    • 1970-01-01
    • 2011-02-18
    • 2021-06-03
    相关资源
    最近更新 更多