2つのXMLをマージする

XML操作の備忘録。
base.xmlとimport.xmlがあって、import.xmlのルートノード以下をbase.xmlに引っ付けたい場合、つまり

[base.xml]
<?xml version="1.0" encoding="UTF-8"?>
<T_T>
  <orz>今日も</orz>
</T_T>

[import.xml]
<?xml version="1.0" encoding="UTF-8"?>
<T_T>
  <orz>帰れません</orz>
</T_T>

<?xml version="1.0" encoding="UTF-8"?>
<T_T>
  <orz>今日も</orz>
  <orz>帰れません</orz>
</T_T>

にしたい場合のコード。XPathを使うとこんな感じです。

 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
 Document baseXml = builder.parse(getClass().getResourceAsStream("base.xml"));
 Document importXml = builder.parse(getClass().getResourceAsStream("import.xml"));
 
 XPath xpath = XPathFactory.newInstance().newXPath();
 XPathExpression ex = xpath.compile("/*/*");
 NodeList importXmlNodeList = (NodeList)ex.evaluate(importXml,XPathConstants.NODESET);
		
 Node rootNode = baseXml.getDocumentElement();			
 for(int i = 0;i < importXmlNodeList.getLength();i++){
  Node importNode = baseXml.importNode(importXmlNodeList.item(i),true);
  rootNode.appendChild(importNode);
 }

肝はbaseXml.importNodeの戻り値をappendChildするところで、baseXml.importNode()を呼んだだけでインポートできたと満足していたら、ハマりました。
String#substring()でハマるのと同じですかそうですか。