【问题标题】:To add an attribute value for all child nodes after root tag in XML Flex在 XML Flex 中的根标记之后为所有子节点添加属性值
【发布时间】:2013-04-09 10:13:01
【问题描述】:

我无法像您为大子节点所做的那样向子节点添加属性。如何做到这一点。我曾经使用过

for each(var node:XML in valueXml.item)
{          
  for(var j:int=0; j<valueXml.length(); j++)
  {
     node.@name = valueXml.item[j].item[0].@name;
  }
}

来自旧的 xml:

<item>
  <item name="Subchild1"/>
  <item name="leaf1"/>
  <item name="leaf2"/>
</item>
<item>
  <item name="Subchild2"/>
  <item name="leaf3"/>
  <item name="leaf4"/>
</item>

我需要添加如下:

 <root>
   <item name="Subchild1">
     <item name="Subchild1"/>
     <item name="leaf1"/>
     <item name="leaf2"/>
   </item>
 <item name="Subchild2">
     <item name="Subchild2"/>
     <item name="leaf3"/>
     <item name="leaf4"/>
 </item>

我想将每个子节点(“Subchild2”)的第一个子子节点([Subchild2,leaf3,leaf4])作为属性名称添加到该子节点。我该如何实现呢?

【问题讨论】:

    标签: xml apache-flex


    【解决方案1】:

    一旦您位于要添加属性的节点,您可以简单地根据其第一个子节点的名称为其分配值。

    var xml:XML = new XML(<root>
      <item>
        <item name="Subchild1"/>
        <item name="leaf1"/>
        <item name="leaf2"/>
      </item>
      <item>
        <item name="Subchild2"/>
        <item name="leaf3"/>
        <item name="leaf4"/>
      </item>
     </root>);
    
    
    for each (var item:XML in xml.item) {
      item.@name = item.children()[0].@name;
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

      //你的xml

              private var xml:XML = new XML(
                  <root>
                      <item>
                        <item name="Subchild1"/>
                        <item name="leaf1"/>
                        <item name="leaf2"/>
                      </item>
                      <item>
                        <item name="Subchild2"/>
                        <item name="leaf3"/>
                        <item name="leaf4"/>
                      </item>
                  </root>
              );
      

      // 函数

          for each (var node:XML in xml.item)
          {
              var attrName:String = node.item[0].@name;
              node.@name = attrName;
          }
      

      //跟踪给出:

      <root>
        <item name="Subchild1">
          <item name="Subchild1"/>
          <item name="leaf1"/>
          <item name="leaf2"/>
        </item>
        <item name="Subchild2">
          <item name="Subchild2"/>
          <item name="leaf3"/>
          <item name="leaf4"/>
        </item>
      </root>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-05
        • 2017-04-25
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-06
        • 2021-10-24
        相关资源
        最近更新 更多