2014-02-11 31 views
1

我想使用stax解析將屬性附加到現有的xml。請建議。如何使用stax解析器將屬性附加到現有的xml

下面是我需要添加的snippnet代碼。

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

它的樣子附加

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

以下後作爲遵循的是snippnet代碼我試過了。但我failied添加的屬性

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"> 
+1

代碼丟失。 – DanielBarbarian

+0

我沒有代碼..我需要代碼來修改=「刪除」到現有的XML文件。請幫忙 – user3297076

+0

我其實並不是指在這種情況下的源代碼,但更早的時候「xml代碼」也不見了。無論哪種方式,它可以幫助我們幫助你,如果你提供了一些你嘗試過的嘗試的源代碼,那麼當你嘗試失敗的時候你需要尋求幫助。從SO幫助中獲得:「詢問代碼的問題必須對所解決的問題有一個最基本的理解,包括嘗試的解決方案,爲什麼他們不工作,以及預期的結果。」 – DanielBarbarian

回答

0

向您檢索的元素添加一個屬性,這是我認爲您想要做的是通過設置一個元素完成的。取出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 for Element