繁体   English   中英

如何使用stax解析器将属性附加到现有xml

[英]How to append an attribute to an existing xml using stax parser

我想使用stax parse将属性附加到现有xml。 请提出建议。

以下是我需要添加的摘录代码。

<un:UtranCell id="RNC17-1-1">

追加后的样子如下

<un:UtranCell id="RNC17-1-1" modifier="delete">

以下是我尝试过的片段代码。 但是我无法添加属性

try {               
      File fXmlFile = new File("/home/xgeoraj/bcgImportFiles/imports/UtranCell.xml");
      DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
      Document doc = dBuilder.parse(fXmlFile);
      System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
      NodeList nList = doc.getElementsByTagName("un:UtranCell");
      for (int temp = 0; temp < nList.getLength(); temp++) {
        Node nNode = nList.item(temp);
        System.out.println("\nCurrent Element :" + nNode.getNodeName());
        if (nNode.getNodeType() == Node.ELEMENT_NODE) {
          Element eElement = (Element) nNode;
          System.out.println("UtranCell id is: " + eElement.getAttribute("id"));
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
}

以下是我需要在其中添加的XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<bulkCmConfigDataFile xmlns:un="utranNrm.xsd" xmlns:xn="genericNrm.xsd" xmlns:gn="geranNrm.xsd" xmlns="configData.xsd" xmlns:es="EricssonSpecificAttributes.14.02.xsd">
    <fileHeader fileFormatVersion="32.615 V4.5" vendorName="Ericsson"/>
    <configData dnPrefix="Undefined">
        <xn:SubNetwork id="ONRM_ROOT_MO_R">
            <xn:SubNetwork id="RNC17">
                <xn:MeContext id="RNC17">
                    <xn:ManagedElement id="1">
                        <un:RncFunction id="1">
                            <un:UtranCell id="RNC17-1-1" modifier="delete">

我认为您想要做的就是将属性添加到检索到的元素中,方法是设置一个元素。 取出if语句。

if (nNode.getNodeType() == Node.ELEMENT_NODE) {
    Element eElement = (Element) nNode;
    System.out.println("UtranCell id is: " + eElement.getAttribute("id"));
    eElement.setAttribute("modifier", "delete"); // <-- This is the added line
}

有关参考,请参见javadoc中的Element

暂无
暂无

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

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