2017-06-21 79 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。然后你可以用这个字符串做任何你想要的 - 打印它,存储在文件或数据库等...