2016-10-20 30 views
0

沒有任何關聯消息我試圖用另一個文檔(其餘文檔的結構和起源的其餘節點)替換其他節點的文檔節點是不同的),使用這種方法:org.w3c.dom.DOMException當replaceChild()

public static void replaceLines(Document target, Document source){ 
     Node sourceNode =source.getElementsByTagName("lines").item(0); 
     Node targetNode=target.getElementsByTagName("lines").item(0); 
     target.getChildNodes().item(0).replaceChild(sourceNode,targetNode); 
    } 

注意:

target.getElementsByTagName("lines").item(0) = target.getChildNodes().item(0) 

我得到這個異常:

10-20 16:19:48.259 20021-20021/myapp.mygestion E/AndroidRuntime: 
FATAL EXCEPTION: main 
Process: myapp.mygestion, PID: 20021 
org.w3c.dom.DOMException 
    at org.apache.harmony.xml.dom.InnerNodeImpl.insertChildAt(InnerNodeImpl.java:118) 
    at org.apache.harmony.xml.dom.InnerNodeImpl.replaceChild(InnerNodeImpl.java:199) 
    at mygestion.com.utiles.XmlEditor.replaceLines(XmlEditor.java:128) 
    at mygestion.com.DetalleFicha$9.onPostExecute(DetalleFicha.java:1078) 
    at android.os.AsyncTask.finish(AsyncTask.java:636) 
    at android.os.AsyncTask.access$500(AsyncTask.java:177) 
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653) 
    at android.os.Handler.dispatchMessage(Handler.java:111) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5637) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

正如我所說,它沒有詳細的信息,我無法找到錯誤的原因,任何想法?

回答

1

當您試圖將節點從源文檔替換爲目標文檔時,似乎引發了異常。如replaceChild(Node newChild, Node oldChild)Javadoc中所述,如果從另一個文檔創建新子項,則會引發DOMException。 您應該嘗試克隆節點,使用目標文檔創建它,然後附加/替換它。

相關問題