简体   繁体   中英

How to Parse Complete XML into a string using DOM PARSER?

For example:

If I pass tagValue=1 then it should return complete xml1 as a string to me String input is in some function.

String input = "<1><xml1></xml1></1><2><xml2></xml2><2>.......<10000><xml10000></xml10000></10000‌​>"; String output = "<xml1></xml1>"; // for tagValue=1;

If the xml has a root element then it is doable 1. Parse the XML using dom parser. 2. Iterate through each node 3. Find the desired node. 4. Write the node in a different xml using transform

Sample code Step 1: I used XML as a string, you can read from file.

 DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance()
                                     .newDocumentBuilder();
InputSource is =  new InputSource(new StringReader(uri));
        Document doc = dBuilder.parse(is);
  1. Iterate through each node

    if (doc.hasChildNodes()) {

      printNote(doc.getChildNodes(), doc); } 
  2. Please put in your logic to iterate thorugh the nodes and find the right child node which you want to process.

  3. Write back as xml. Here assumption is that tempNode is the one you want to write as XML.

    TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer; try { transformer = tFactory.newTransformer();

      DOMSource source = new DOMSource(tempNode); StreamResult result = new StreamResult(System.out); transformer.transform(source, result); 

You are not parsing XML, you are parsing a String, a replace should be enough in your particular case

   String input = "<xml1><note><to>Tove</to><from>Jani</from<heading>Reminder</heading><body>Don't forget me this weekend</body></note><xml1>";
    input = input.replace("<xml1>", "");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM