java - The structure of the xml file -


मैं एक पाठ फ़ाइल है:

  engMusic अनास्तासिया-Te_Iert.mp3 Calvin_Harris_and_Alesso_ft_Hurts-Under_Control। एमपी 3 ओशियाना-Endless_Summer_Remix.mp3 The_Wanted-Show_Me_Love.mp3 rusMusic बस्ता-करतब-smoki-मो-kamennye-cvety-solovey.su.mp3 maks-barskih-zdes-ए-seychas.mp3  

मैं SAX का उपयोग करके इस फाइल को पार्स करता हूं और मुझे इस तरह XML फ़ाइल प्राप्त करना चाहिए

  & lt; संगीत & gt; & LT; CATALOG_NAME & gt; engMusic & lt; / CATALOG_NAME & gt; & LT; FILE_NAME & gt; अनास्तासिया-Te_Iert.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; Calvin_Harris_and_Alesso_ft_Hurts-Under_Control.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; ओशियाना-Endless_Summer_Remix.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; The_Wanted-Show_Me_Love.mp3 & lt; / FILE_NAME & gt; & LT; CATALOG_NAME & gt; rusMusic & lt; / CATALOG_NAME & gt; & LT; FILE_NAME & gt; बस्ता-करतब-smoki-मो-kamennye-cvety-solovey.su.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; maks-barskih-zdes-ए-seychas.mp3 & lt; / FILE_NAME & gt; & Lt; / संगीत & gt;  

लेकिन मुझे एक समस्या है। मुझे नहीं पता कि सबफ़ोल्डर का चयन कैसे करें और "rusmusic" के लिए एक टैग असाइन करें वास्तव में मुझे यह आउटपुट मिला:

  & lt; संगीत & gt; & LT; CATALOG_NAME & gt; engMusic & lt; / CATALOG_NAME & gt; & LT; FILE_NAME & gt; अनास्तासिया-Te_Iert.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; Calvin_Harris_and_Alesso_ft_Hurts-Under_Control.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; ओशियाना-Endless_Summer_Remix.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; The_Wanted-Show_Me_Love.mp3 & lt; / FILE_NAME & gt; ** & LT; FILE_NAME & gt; rusMusic & lt; / FILE_NAME & gt; ** // दरअसल होना है & lt चाहिए, CATALOG_NAME & gt; rusMusic & lt; / CATALOG_NAME & gt; & LT; FILE_NAME & gt; बस्ता-करतब-smoki-मो-kamennye-cvety-solovey.su.mp3 & lt; / FILE_NAME & gt; & LT; FILE_NAME & gt; maks-barskih-zdes-ए-seychas.mp3 & lt; / FILE_NAME & gt; & Lt; / संगीत & gt;  

मेरा कोड:

  सार्वजनिक वर्ग ConvertToXML {BufferedReader in; स्ट्रीम देखें; ट्रांसफॉर्मरहैंडलर वें; विशेषताएँ आईएमपीएल एटीटी; सार्वजनिक शून्य कनवर्टटॉक्सिम () ({नया = बफ़्टेड रीडर में देखें (नया FileReader ("content.txt")); बाहर = नया स्ट्रीम रिजल्ट ("dir.xml"); initXML (); अक्षर स्ट्रिंग; ArrayList & LT; स्ट्रिंग & gt; सामग्री = नया अर्रेलिस्ट & lt; & gt; (); जबकि ((str = in.readLine ()) = = null {content.add (str); } प्रक्रिया (सामग्री); in.close (); WriteXml (); } पकड़ (अपवाद पूर्व) {ex.printStackTrace (); }} निजी शून्य initXML () फेंकता ParserConfigurationException, TransformerConfigurationException, SAXException {SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance (); Th = tf.new ट्रान्सफ़ॉर्मरहैंडलर (); ट्रांसफार्मर ट्रांसफार्मर = th.gettransformer (); ट्रांसफार्मर.सेटऑटपुटप्रॉपर्टी (आउटपुटकीज। एनकोडिंग, "यूटीएफ -8"); ट्रांसफार्मर.सेटऑटपुटप्रॉपर्टी ("{http://xml.apache.org/xslt}indent-amount", "4"); ट्रांसफार्मर.सेटऑटपुटप्रॉपर्टी (आउटपुटकिसेइंडेंट, "हाँ"); th.setResult (बाहर); th.startDocument (); Atts = नए गुण इंपल (); Th.startElement ("", "", "संगीत", एटीटी); } निजी शून्य प्रक्रिया (ArrayList & lt; स्ट्रिंग & gt; तत्व) SAXException {atts.clear (); Th.startElement ("", "", "CATALOG_NAME", एटीटी); Th.characters (elements.get (0) .toचरअरे (), 0, तत्व। गेट (0)। लांघ ()); Th.endElement ("", "", "CATALOG_NAME"); के लिए (int i = 1; i & lt; elements.size (); i ++) {th.startElement ("", "", "FILE_NAME", एटीटी); Th.characters (elements.get (i)। TocharArray (), 0, element.get (i) .length ()); Th.endElement ("", "", "FILE_NAME"); }} निजी शून्य WriteXml () TransformerConfigurationException, TransformerException, SAXException {th.endElement ( "", "", "संगीत") फेंकता है; th.endDocument (); }  

}

मैं इस तरह से कुछ के साथ जाना था (यह कोशिश नहीं की है तो उसे यहां लिखकर सीधे)

में convertToXml ()

  जबकि ((str = in.readLine () )! = नल) {प्रक्रिया (str); }  

और प्रक्रिया () को अब स्ट्रिंग

  निजी शून्य प्रक्रिया (स्ट्रिंग पंक्ति) स्वीकार करनी चाहिए ) SAXException फेंकता है (यदि (row.startsWith ("")) {th.startElement ("", "", "FILE_NAME", एटीटीएस); Th.characters (row.toCharArray (), 0, row.length ()); Th.endElement ("", "", "FILE_NAME"); } अन्य {th.startElement ("", "", "CATALOG_NAME", एटीटी); Th.characters (row.toCharArray (), 0, row.length ()); Th.startElement ("", "", "CATALOG_NAME", एटीटी); }}  

यह शायद खुद के लिए काम नहीं करेगा, लेकिन आपको यह विचार मिलता है। बस जांचें कि यदि आपकी फ़ाइल (2 या 4 रिक्त स्थान, टैब चरित्र, ...) में जो कुछ भी शुरू हो रहा है, तो वह FILE_NAME है, तो यह CATALOG_NAME


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -