2017-02-21 3 views
1

laisse dire que j'ai quelques xml:JDOM récupère la chaîne de contenir le contenu

<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document> 

et je dois maintenant obtenir le contenu comme une chaîne, donc j'aurais

blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd 

je suis Cela me dérange dans la tête depuis un moment, et je n'ai pas l'air de pouvoir le comprendre. J'espère obtenir quelques directions à ce que je dois faire.

EDIT:

juste pour être clair, disons que je le XML comme ceci:

SAXBuilder sb = new SAXBuilder(); 
Document doc = sb.build(new StringReader("<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document>")); 

et je dois maintenant obtenir le contenu de

Répondre

2

Il est très rare d'avoir besoin pour obtenir un sous-ensemble incohérent d'un document XML comme vous le souhaitez. Il est beaucoup plus fréquent d'obtenir que le contenu du texte: blabla test hello dfh sdfsd

Notez que vous pouvez obtenir un sous-ensemble du contenu comme « ContentList » de l'élément racine, puis sortie juste cette liste comme une chaîne:

XMLOutputter xout = new XMLOutputter(); 
    String txt = xout.outputString(doc.getRootElement().getContent()); 
    System.out.println(txt); 

Pour moi, j'ai écrit le code:

public static void main(String[] args) throws JDOMException, IOException { 
    SAXBuilder sb = new SAXBuilder(); 
    Document doc = sb.build(new StringReader("<document>blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd</document>")); 

    XMLOutputter xout = new XMLOutputter(); 
    String txt = xout.outputString(doc.getRootElement().getContent()); 
    System.out.println(txt);   
} 

et sortie:

blabla<bold>test<list><item>hello<italics>dfh</italics></item></list></bold>sdfsd