Вы можете применить таблицу стилей XSLT для извлечения желаемого содержимого.
Эта таблица стилей должна соответствовать вашему примеру:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Response/aa/Fromhere/*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Примените это что-то вроде следующего (обработка исключений не входит):
String xml = "<Response> <aa> <Fromhere> <a1>Content</a1> <a2>Content</a2> </Fromhere> </aa> </Response>";
Source xsl = new StreamSource(new FileReader("/path/to/file.xsl");
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(xsl);
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter out = new StringWriter();
transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
System.out.println(out.toString());
Это должно работать с любой версией Java, начиная с 1.4 ,
Не будет ли это стирать элементы? – McDowell
Кроме того, упаковка StringReader в StreamSource была бы более кодирующей-агностикой. – McDowell
Спасибо @ izb.Это работало чудесно. Спасибо. – Pavan