2017-06-21 78 views
-3

此XML文件我有選擇性XML解析

<?xml version="1.0" encoding="UTF-8"?> 
<Bank> 
     <Account type="saving"> 
      <Id>1001</Id> 
      <Name>Jack Robinson</Name> 
      <Amt>10000</Amt> 
     </Account> 
     <Account type="current"> 
      <Id>1002</Id> 
      <Name>Sony Corporation</Name> 
      <Amt>1000000</Amt> 
     </Account> 
</Bank> 

我需要解析這個XML並獲得<Bank>...</Bank>之間的內容。我的輸出xml應該是

<Account type="saving"> 
      <Id>1001</Id> 
      <Name>Jack Robinson</Name> 
      <Amt>10000</Amt> 
     </Account> 
     <Account type="current"> 
      <Id>1002</Id> 
      <Name>Sony Corporation</Name> 
      <Amt>1000000</Amt> 
     </Account> 

有關如何使用Java實現此目的的任何想法?

+1

有大量關於XML解析的教程。請走過其中的一些。 – Seelenvirtuose

+0

對不起。我看到如何提取單個元素的教程。我想獲取整個xml並將輸出存儲爲一個xml文件。 –

回答

1

首先: 您輸出的XML不是有效的XML。

XML必須包含您嘗試刪除的根元素。

正如@Seelenvirtuose所說,有許多方法可以在許多層面上做你想做的事情。

從簡單操作原始XML作爲字符串,直到使用DOM模型,JAXB,XPath/XQuery或XSLT。這是你選擇的問題。

作爲例如與Apache公地utils的:

String resultString = org.apache.commons.lang.StringUtils.substringBetween(originalXMLString,"<Bank>","</Bank>").trim(); 

當然你的輸出只能是字符串,因爲它不是有效的XML。然後你可以用這個字符串做任何你想要的 - 打印它,存儲在文件或數據庫等...