2011-01-29 7 views
0

に文字列としてXMLノード内の内容を取得します:ノード1からはどのように私はこのような何かを探していたJava

<Node1> 
    <Child2 attr1="abc"> 
    <Child3 attr2="xyz"> 
<Node1> 

、私はテキストとしてノード内の内容を取得したいです。私が欲しいの出力は

"<Child2 attr1="abc"><Child3 attr2="xyz">" 
+0

私はこれを行うためにDOMを使用しています。 – Anon

+0

そのXMLは正しくフォーマットされていません。Webでjava xmlパーサーを検索しようとしましたか? –

+0

Googleのxpathをご利用ください。 mistype.myのXMLた – CoolBeans

答えて

1
//Parse the input document 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 
     Document doc = builder.parse(new File("yourfile.xml")); 

     //Set up the transformer to write the output string 
     TransformerFactory tFactory = TransformerFactory.newInstance(); 
     Transformer transformer = tFactory.newTransformer(); 
     transformer.setOutputProperty("indent", "yes"); 
     StringWriter sw = new StringWriter(); 
     StreamResult result = new StreamResult(sw); 

     //Find the first child node 
     NodeList nl = doc.getDocumentElement().getChildNodes(); 
     DOMSource source = null; 
     for(int x = 0;x < nl.getLength();x++) 
     { 
      Node e = nl.item(x); 
      if(e instanceof Element) 
      { 
       source = new DOMSource(e); 
       break; 
      } 
     } 

     transformer.transform(source, result); 
     System.out.println(sw.toString()); 
    } 
} 

が、他の可能な答えでこれquestionを参照してくださいです。