Java 选择性XML解析

Java 选择性XML解析,java,xml,xml-parsing,Java,Xml,Xml Parsing,这是我的xml文件 <?xml version="1.0" encoding="UTF-8"?> <Bank> <Account type="saving"> <Id>1001</Id> <Name>Jack Robinson</Name> <Amt>10000</Amt> </Accou

这是我的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>

1001
杰克罗宾逊
10000
1002
索尼公司
1000000
我需要解析此xml并获取
之间的内容。我的输出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>

1001
杰克罗宾逊
10000
1002
索尼公司
1000000
关于如何使用Java实现这一点,有什么想法吗

首先: 您的输出XML不是有效的XML

XML必须具有要删除的根元素

正如@Seelenvirtuose所说,在很多层面上,有很多方法可以实现你的愿望

从简单地将原始XML作为字符串操作,到使用DOM模型、JAXB、XPath/XQuery或XSLT。这是你的选择

以Apache commons UTIL为例:

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

当然,您的输出只能是字符串,因为它不是有效的XML。然后,您可以随心所欲地使用该字符串—打印、存储在文件或数据库中等等。

有大量关于XML解析的教程。请你自己看一下,我很抱歉。我看到了关于如何提取单个元素的教程。我希望获得整个xml并将输出存储为xml文件。