{"id":4791,"date":"2021-08-06T10:18:05","date_gmt":"2021-08-06T10:18:05","guid":{"rendered":"https:\/\/www.bearloga.space\/?page_id=4791"},"modified":"2021-08-06T10:18:05","modified_gmt":"2021-08-06T10:18:05","slug":"java-sax-parser-izmenit-xml-dokument","status":"publish","type":"page","link":"https:\/\/www.bearloga.space\/en\/java-sax-parser-izmenit-xml-dokument\/","title":{"rendered":"Java SAX Parser \u2014 \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c XML-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0412\u043e\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 XML-\u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0442\u0435\u0433 &lt;Result> Pass &lt;Result \/> \u0432 \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u0433\u0430 &lt;\/ marks>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version = \"1.0\"?&gt;\n&lt;class&gt;\n   &lt;student rollno = \"393\"&gt;\n      &lt;firstname&gt;dinkar&lt;\/firstname&gt;\n      &lt;lastname&gt;kad&lt;\/lastname&gt;\n      &lt;nickname&gt;dinkar&lt;\/nickname&gt;\n      &lt;marks&gt;85&lt;\/marks&gt;\n   &lt;\/student&gt;\n   \n   &lt;student rollno = \"493\"&gt;\n      &lt;firstname&gt;Vaneet&lt;\/firstname&gt;\n      &lt;lastname&gt;Gupta&lt;\/lastname&gt;\n      &lt;nickname&gt;vinni&lt;\/nickname&gt;\n      &lt;marks&gt;95&lt;\/marks&gt;\n   &lt;\/student&gt;\n   \n   &lt;student rollno = \"593\"&gt;\n      &lt;firstname&gt;jasvir&lt;\/firstname&gt;\n      &lt;lastname&gt;singn&lt;\/lastname&gt;\n      &lt;nickname&gt;jazz&lt;\/nickname&gt;\n      &lt;marks&gt;90&lt;\/marks&gt;\n   &lt;\/student&gt;\n&lt;\/class&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">SAXModifyDemo.java<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">package com.tutorialspoint.xml;\n\nimport java.io.*;\nimport org.xml.sax.*;\nimport javax.xml.parsers.*;\nimport org.xml.sax.helpers.DefaultHandler;\n\npublic class SAXModifyDemo extends DefaultHandler {\n   static String displayText[] = new String[1000];\n   static int numberLines = 0;\n   static String indentation = \"\";\n\n   public static void main(String args[]) {\n\n      try {\n         File inputFile = new File(\"input.txt\");\n         SAXParserFactory factory = \n         SAXParserFactory.newInstance();\n         SAXModifyDemo obj = new SAXModifyDemo();\n         obj.childLoop(inputFile);\n         FileWriter filewriter = new FileWriter(\"newfile.xml\");\n         \n         for(int loopIndex = 0; loopIndex &lt; numberLines; loopIndex++) {\n            filewriter.write(displayText[loopIndex].toCharArray());\n            filewriter.write('\\n');\n            System.out.println(displayText[loopIndex].toString());\n         }\n         filewriter.close();\n      }\n      catch (Exception e) {\n         e.printStackTrace(System.err);\n      }\n   }\n\n   public void childLoop(File input) {\n      DefaultHandler handler = this;\n      SAXParserFactory factory = SAXParserFactory.newInstance();\n      \n      try {\n         SAXParser saxParser = factory.newSAXParser();\n         saxParser.parse(input, handler);\n      } catch (Throwable t) {}\n   }\n\n   public void startDocument() {\n      displayText[numberLines] = indentation;\n      displayText[numberLines] += \"&lt;?xml version = \\\"1.0\\\" encoding = \\\"\"+\n         \"UTF-8\" + \"\\\"?&gt;\";\n      numberLines++;\n   }\n\n   public void processingInstruction(String target, String data) {\n      displayText[numberLines] = indentation;\n      displayText[numberLines] += \"&lt;?\";\n      displayText[numberLines] += target;\n      \n      if (data != null &amp;&amp; data.length() &gt; 0) {\n         displayText[numberLines] += ' ';\n         displayText[numberLines] += data;\n      }\n      displayText[numberLines] += \"?&gt;\";\n      numberLines++;\n   }\n\n   public void startElement(String uri, String localName, String qualifiedName,\n      Attributes attributes) {\n\n      displayText[numberLines] = indentation;\n\n      indentation += \"    \";\n\n      displayText[numberLines] += '&lt;';\n      displayText[numberLines] += qualifiedName;\n      \n      if (attributes != null) {\n         int numberAttributes = attributes.getLength();\n\n         for (int loopIndex = 0; loopIndex &lt; numberAttributes; loopIndex++) {\n            displayText[numberLines] += ' ';\n            displayText[numberLines] += attributes.getQName(loopIndex);\n            displayText[numberLines] += \"=\\\"\";\n            displayText[numberLines] += attributes.getValue(loopIndex);\n            displayText[numberLines] += '\"';\n         }\n      }\n      displayText[numberLines] += '&gt;';\n      numberLines++;\n   }\n\n   public void characters(char characters[], int start, int length) {\n      String characterData = (new String(characters, start, length)).trim();\n      \n      if(characterData.indexOf(\"\\n\") &lt; 0 &amp;&amp; characterData.length() &gt; 0) {\n         displayText[numberLines] = indentation;\n         displayText[numberLines] += characterData;\n         numberLines++;\n      }\n   }\n\n   public void endElement(String uri, String localName, String qualifiedName) {\n      indentation = indentation.substring(0, indentation.length() - 4) ;\n      displayText[numberLines] = indentation;\n      displayText[numberLines] += \"&lt;\/\";\n      displayText[numberLines] += qualifiedName;\n      displayText[numberLines] += '&gt;';\n      numberLines++;\n\n      if (qualifiedName.equals(\"marks\")) {\n         startElement(\"\", \"Result\", \"Result\", null);\n         characters(\"Pass\".toCharArray(), 0, \"Pass\".length());\n         endElement(\"\", \"Result\", \"Result\");\n      }\n   }\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u043e\u0442 \u0432\u0445\u043e\u0434\u043d\u043e\u0439 XML-\u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0442\u0435\u0433 &lt;Result> Pass &lt;Result \/> \u0432 \u043a\u043e\u043d\u0446\u0435 \u0442\u0435\u0433\u0430 &lt;\/ marks>. &lt;?xml version [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[153],"tags":[],"class_list":["post-4791","page","type-page","status-publish","hentry","category-java-xml"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/pages\/4791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/comments?post=4791"}],"version-history":[{"count":0,"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/pages\/4791\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/media?parent=4791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/categories?post=4791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bearloga.space\/en\/wp-json\/wp\/v2\/tags?post=4791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}