繁体   English   中英

子节点XML DOM Java的更新属性

[英]Update Attributes of Child Node XML DOM Java

我试图弄清楚如何在XML结构的深处更新XML节点的多个属性。 我正在将Java与XML DOM类一起使用。 考虑以下XML结构:

<foo>
  <books>
    <book id="ABC" source="blah">
       <page id="01" language="english" value="fun"/>
       <page id="02" language="english" value="stuff"/>
       <page id="03" language="english" value="ant"/>
    </book>
    <book id="123" source="blah33">
       <page id="01" language="english" value="stuff"/>
       <page id="02" language="english" value="fun"/>
       <page id="03" language="english" value="yo"/>
    </book>
    .......
  </books>
</foo>

因此,我在Book ABC下的Id 02页上,我想将值更新为一组新的文本。 问题是我要遍历一个书列表,并相应地更新此单独的XML DOM。 因此,在这一点上,我有一个子Node对象,它无法设置属性值。 它仅具有可用的setNodeValue()方法。

我在这里想念什么? 所讨论的XML结构更大,更复杂,但是上面的示例说明了子关系以及需要更新的地方。

救命! 提前致谢

.....
String masterColumnName = masterColumnNode.getAttributes().getNamedItem("name").getNodeValue();
for (int j = 0; j < customerColumnList.getLength(); j++){
      Node customerColumnNode = customerColumnList.item(j);
      String customerColumnName = customerColumnNode.getAttributes().getNamedItem("name").getNodeValue();

      // Check for Match
      if (masterColumnName.equals(customerColumnName)){
          // Get Master & Customer Attributes
          NamedNodeMap masterColumnAttr = masterColumnNode.getAttributes();
          NamedNodeMap customerColumnAttr = customerColumnNode.getAttributes();

          customerColumnNode.<NO WAY TO DO> = masterColumnAttr.getNamedItem("function").getNodeValue();

......

好吧...。我知道了。 :)就像这样简单:

customerColumnAttr.getNamedItem("function").setTextContent(masterFunction);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM