Basandosi sulla cima della soluzione di Lukas Eder, possiamo estrarre InnerXml come in .NET, come di seguito
public static String innerXml(Node node,String tag){
String xmlstring = toString(node);
xmlstring = xmlstring.replaceFirst("<[/]?"+tag+">","");
return xmlstring;
}
public static String toString(Node node){
String xmlString = "";
Transformer transformer;
try {
transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
//transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StreamResult result = new StreamResult(new StringWriter());
xmlString = nodeToStream(node, transformer, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (Exception ex){
ex.printStackTrace();
}
return xmlString;
}
Es:
If Node name points to xml with string representation "<Name><em>Chris</em>tian<em>Bale</em></Name>"
String innerXml = innerXml(name,"Name"); //returns "<em>Chris</em>tian<em>Bale</em>"
grazie, esattamente quello che mi serviva – yossi
Questo metodo continua ad aggiungere il tag di definizione XML nella parte anteriore della stringa ... c'è un modo per prevenire che, oltre a limitarsi semplicemente a tagliare in seguito? – Nyerguds
L'ho risolto.La soluzione è aggiungere la riga 'lsSerializer.getDomConfig(). SetParameter (" xml-declaration ", false);' – Nyerguds