Parse xml containing ? symbol in fields

Hi! my problem is that I try to parse xml files with jdom 6 and some fields may contain question marks, if this happens my java program fails.
I solved the problem of parsing odd characters (like inverted question mark, spanish symbols...) but it is not solved for ? symbol, maybe it is used as tokenizer in jdom? can anybody help me?
Thank u in advance

The xml code is
<ShortDescription>�Cansado de esperar? Tenemos tu soluci�n...</ShortDescription>
but I couldn�t get the exception message. I�m sure it is the ? character cos I removed it and it works good even when the text contain spanish characters as in the example.
Thank u very much

Similar Messages

  • Parsing xml in clob field remove non utf-8 characters

    hi all,
    i have an issue where a stored procedure runs during a nightly process and parses xml contained in a clob field. There are some records that contain non-utf8(they paste characters from word)characters and therefore the parse fails when using performing an xquery select against the clob field as xmltype. I was wondering if anyone knew of a handy way to handle such a situation? I have looked around a bit and not found anything that seemed tailored to my situation, and I would like something a bit more generic than doing a replace on individual characters that i have found causing issues...thx in advance! -- jp

    Hi,
    Like BluShadow I'm curious to see a test case...
    Depending on the way it's been created, the encoding declared in the XML prolog doesn't necessarily reflects the actual encoding of the content.
    What's your database character set, and version?
    Please also post the error message you get (LPX-00200 probably?).

  • Parse XML from CLOB field

    How can I parse XML from CLOB field? I need to replace or delete the node from XML document and update the database with new XML. I am using Oracle 9i release 2.
    Here is the XML. In this XML if section1 and section2 exists then I need to delete the section1 node. If section2 doesn't exist, replace section1 with section2 node.
    <Document ID='2' TypeID='2'>
    <Body>
    <Page Name='Page1'>
    <Sec ID='section1' Title='Section 1' GroupID='' />
    <Sec ID='section2' Title='Section 2' GroupID='' />
    </Page>
    </Body>
    </Document>
    Please help.. Thank you..

    In 9.2, you are limited into your options. Have a look into, among others, updateXML. Updating tp 10gR2 will give you more options to succeed.

  • I need one XML File containing one Idoc fields Say Orders01

    hiall,
    i need one XML File containing one Idoc fields Say Orders01
    bye
    satish

    hi,
    <?xml version="1.0" encoding="iso-8859-1"?>
    <ORDERS02>
      <IDOC BEGIN="1">
        <EDI_DC40 SEGMENT="1">
          <TABNAM>EDI_DC40</TABNAM>
          <MANDT>800</MANDT>
          <DOCNUM>0000000000213213</DOCNUM>
          <DOCREL>46B</DOCREL>
          <STATUS>30</STATUS>
          <DOCTYP>ORDERS02</DOCTYP>
          <DIRECT>1</DIRECT>
          <RCVPOR>A000000032</RCVPOR>
          <RCVPRT>LS</RCVPRT>
          <RCVPRN>sell</RCVPRN>
          <RCVSAD/>
          <RCVLAD/>
          <STD/>
          <STDVRS/>
          <STDMES/>
          <MESCOD/>
          <MESFCT/>
          <OUTMOD>4</OUTMOD>
          <TEST/>
          <SNDPOR>SAPSID</SNDPOR>
          <SNDPRT>KU</SNDPRT>
          <SNDPRN>23334</SNDPRN>
          <SNDSAD/>
          <SNDLAD/>
          <REFINT/>
          <REFGRP/>
          <REFMES/>
          <ARCKEY/>
          <CREDAT>20061019</CREDAT>
          <CRETIM>205734</CRETIM>
          <MESTYP>ORDERS</MESTYP>
          <IDOCTYP>ORDERS02</IDOCTYP>
          <CIMTYP/>
          <RCVPFC/>
          <SNDPFC/>
          <SERIAL></SERIAL>
          <EXPRSS/>
        </EDI_DC40>
        <E1EDK01 SEGMENT="1">
          <KZABS>X</KZABS>
          <CURCY>USD</CURCY>
          <WKURS>1.000</WKURS>
          <ZTERM>ZZZZ</ZTERM>
          <BSART>EC</BSART>
          <BELNR>300024455</BELNR>
          <RECIPNT_NO>misssa</RECIPNT_NO>
        </E1EDK01>
        <E1EDK14 SEGMENT="1">
          <QUALF>014</QUALF>
          <ORGID>1000</ORGID>
        </E1EDK14>
        <E1EDK14 SEGMENT="1">
          <QUALF>009</QUALF>
          <ORGID>001</ORGID>
        </E1EDK14>
        <E1EDK14 SEGMENT="1">
          <QUALF>011</QUALF>
          <ORGID>1000</ORGID>
        </E1EDK14>
        <E1EDK03 SEGMENT="1">
          <IDDAT>012</IDDAT>
          <DATUM>20061019</DATUM>
        </E1EDK03>
        <E1EDKA1 SEGMENT="1">
          <PARVW>LF</PARVW>
          <PARTN>000002344</PARTN>
          <TELF1></TELF1>
          <BNAME></BNAME>
        </E1EDKA1>
        <E1EDKA1 SEGMENT="1">
          <PARVW>WE</PARVW>
          <LIFNR>1000</LIFNR>
          <NAME1></NAME1>
          <STRAS></STRAS>
          <ORT01></ORT01>
          <PSTLZ>4444</PSTLZ>
          <LAND1>EN</LAND1>
          <TELF1></TELF1>
          <SPRAS>D</SPRAS>
          <ORT02></ORT02>
          <REGIO>02</REGIO>
        </E1EDKA1>
        <E1EDK02 SEGMENT="1">
          <QUALF>001</QUALF>
          <BELNR>600060324</BELNR>
          <DATUM>20061019</DATUM>
          <UZEIT>205736</UZEIT>
        </E1EDK02>
        <E1EDK17 SEGMENT="1">
          <QUALF>001</QUALF>
          <LKOND>EXW</LKOND>
          <LKTEXT>london</LKTEXT>
        </E1EDK17>
        <E1EDK18 SEGMENT="1">
          <QUALF>001</QUALF>
          <TAGE>12</TAGE>
          <PRZNT>4.000</PRZNT>
        </E1EDK18>
        <E1EDK18 SEGMENT="1">
          <QUALF>002</QUALF>
          <TAGE>30</TAGE>
          <PRZNT>2.000</PRZNT>
        </E1EDK18>
        <E1EDK18 SEGMENT="1">
          <QUALF>003</QUALF>
          <TAGE>45</TAGE>
        </E1EDK18>
        <E1EDP01 SEGMENT="1">
          <POSEX>00010</POSEX>
          <PSTYP>0</PSTYP>
          <KZABS>X</KZABS>
          <MENGE>1.000</MENGE>
          <MENEE>EA</MENEE>
          <BMNG2>1.000</BMNG2>
          <PMENE>EA</PMENE>
          <VPREI>3</VPREI>
          <PEINH>1</PEINH>
          <NETWR>3</NETWR>
          <MATKL>001</MATKL>
          <BPUMN>1</BPUMN>
          <BPUMZ>1</BPUMZ>
          <E1EDP20 SEGMENT="1">
            <WMENG>1.000</WMENG>
            <EDATU>19</EDATU>
          </E1EDP20>
          <E1EDP19 SEGMENT="1">
            <QUALF>002</QUALF>
            <IDTNR>100</IDTNR>
          </E1EDP19>
          <E1EDP19 SEGMENT="1">
            <QUALF>001</QUALF>
            <KTEXT>some text</KTEXT>
          </E1EDP19>
        </E1EDP01>
        <E1EDS01 SEGMENT="1">
          <SUMID>002</SUMID>
          <SUMME>3</SUMME>
          <SUNIT>USD</SUNIT>
        </E1EDS01>
      </IDOC>
    </ORDERS02>
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Parsing xml returned by web service

    I am calling a web service from flash and the web service
    returns xml. The xml gets urlencoded when it's put inside the soap
    wrapping xml and I'm not sure how to get rid of the soap wrapping
    and unencode the returned xml. Thanks.

    Hi vtxr1300,
    I'm not sure if you meant to say "urlencoding" because that
    looks more
    like this:
    ?title=This is a test title&description=This is a test
    description of item 1
    What you're looking at here is pure XML (with namespaces but
    you can
    ignore them for the most part...we know this is SOAP!).
    Since you posted this in the ActionScript 3 forum, I'll
    assume you'll
    want AS3 code to deal with this. Luckily, AS 3 has made it
    incredibly easy
    to extract whetever you need out of this.
    First, you just need to get this data into a standard XML
    object is it's
    not already. So..something like this:
    //xString is your XML data...SOAP return data, string, or
    whatever
    var myXML:XML=new XML(xString.toString());
    The XML object retains its nesting properties so that, for
    example, to
    access the first '<desc>' node, you must access
    '<module>' before it,
    '<modules>' before that, and so on. This is
    accomplished using the "child"
    method associated with the XML object which uses the node
    name as a
    parameter. For the '<desc>' node, for example, this
    would look like:
    myXML.child("Body").child("GetTrainingResponse").child("GetTrainingResult").child("traini ng").child("modules").child("modile").child("desc");
    A bit lengthy, but it gets the job done. Typically I would
    store s
    reference to each of the resulting "child" calls. this has
    two benefits and
    uses: It's easier to organize and easier to read than one
    long instruction,
    and it allows you to parse through multiple nodes. Each
    "child" call returns
    an XMLList object, not necessarily a single node. If there
    are multiple
    sibling nodes with the same name, for example, calling the
    "child" method
    will return an XMLList with two object nodes, not just one.
    An XMLList can
    be used much like an array so you can simply loop through the
    results to see
    all of the nodes.
    The notation for ActionScript 3 has changed a bit for node
    attributes.
    An attribute name is now referenced via an '@' symbol. For
    example, to get
    the 'xmlns' attribute of the '<GetTrainingResponse>'
    node, you would use:
    myXML.child("Body").child("GetTrainingResponse").@xmlns;
    Finally, it's worthwhile noting that the XML container
    obejct reference
    has changed. In ActionScript 2.0, an XML object would point
    to the XML
    document. The "firstChild" property of the XML object would
    point to the
    first node ('<soap>' in this instance). In ActionScript
    3.0, the XML object
    point to the first node so that the first child of the object
    in this
    instance would be the '<soap:Body>' node.
    As mentioned, you can usually ignore namespaces for objects
    you're
    familiar with. The "soap" namespace, for example, can be
    assumed since we
    know this is a SOAP response.
    Hope this helps.
    Regards,
    Patrick Bay
    BAY NEW MEDIA
    "vtxr1300" <[email protected]> wrote in
    message
    news:[email protected]...
    > Here's what the web service is returning. If I create a
    local version of
    > the
    > xml without the soap wrapping and urlencoding I can get
    all the data I
    > need...
    > I just can't figure out how to urldecode it and get rid
    of the soap xml.
    > Can
    > anyone please offer some ideas? Thanks.
    >
    > <soap:Envelope xmlns:soap="
    http://schemas.xmlsoap.org/soap/envelope/"
    > xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance"
    > xmlns:xsd="
    http://www.w3.org/2001/XMLSchema">
    > <soap:Body>
    > <GetTrainingResponse xmlns="
    http://www.trainingondemand.com/">
    >
    <GetTrainingResult><training><modules><module><title>Item
    > 1</title><desc>This is a test description of
    the
    > item.</desc><purchaseurl>
    http://www.yahoo.com</purchaseurl><imageurl>http://www.
    >
    testsite.com/header.gif</imageurl></module><module><title>Item
    > 1</title><desc>This is a test description of
    the
    > item.</desc><purchaseurl>
    http://www.yahoo.com</purchaseurl><imageurl>http://www.
    >
    testsite.com/header.gif</imageurl></module><module><title>Item
    > 1</title><desc>This is a test description of
    the
    > item.</desc><purchaseurl>
    http://www.yahoo.com</purchaseurl><imageurl>http://www.
    >
    testsite.com/header.gif</imageurl></module><module><title>Item
    > 1</title><desc>This is a test description of
    the
    > item.</desc><purchaseurl>
    http://www.yahoo.com</purchaseurl><imageurl>http://www.
    >
    testsite.com/header.gif</imageurl></module></modules><colors><darkcolor>8396b0</
    >
    darkcolor><btngradientstart>2d6dc4<btngradientstart><btngradientend>17498f<btngr
    >
    adientend><btn2gradientstart>a5b5ca</btn2gradientstart><btn2gradientend>c4d0e0</
    >
    btn2gradientend></colors></training></GetTrainingResult>
    > </GetTrainingResponse>
    > </soap:Body>
    > </soap:Envelope>
    >

  • Flash Player 10 removes HTML encoding in CDATA when parsing XML

    I have an application that was written with Flash Professional 8/AS2 and it parses XML for rendering dynamic media content. The XML pulls text with HTML markup out of CDATA sections and places them into an html enabled text field. Everything has worked wonderfully until Flash Player 10.
    Now, if we use html escape characters for greater than or less than symbols, they are being decoded by the xml parser.
    Here's my example CDATA section:
    Here <u>we</u> go: This &#60;node&#62; &lt;works&gt; 
    when I grab its value using nodeValue or toString, the results are different from Flash Player 9 to 10. Here's what I'm getting:
    node.nodeValue (Flash Player 9):
    Here <u>we</u> go: This &#60;node&#62; <works>
    node.nodeValue (Flash Player 10):
    Here <u>we</u> go: This <node> <works>
    node.toString (Flash Player 9):
    Here <u>we</u> go: This &#60;node&#62; &lt;works&gt;
    node.toString (Flash Player 10):
    Here <u>we</u> go: This <node> <works>
    In Flash 10, if I escape the ampersand, it will work, but this doesn't work in 9. for example, the following works in 10:
    <![CDATA[Here <u>we</u> go: This &amp;#60;node&amp;#62; &amp;lt;works&amp;gt;]]>
    This all happens before I assign it to a text field. How do I keep the parser from destroying my escaped characters in Flash 10? Do I just need to drop support for Flash Player 9 and go for what works in 10, or is there a solution for both?
    Message was edited by: Xygar

    I'm not an action script programmer. I'm just trying to fix some code written like 3 years ago. So I think I am wrong about where this problem is coming from.
    The original developer actually set up a class to load a remote xml file via sendAndLoad on a LoadVars object. It passes an object with an onData delegate set that passes the event object to an xml parsing method.
    the parsing method looks like this:
         private function parseXml(eventObj:Object){
              if(eventObj != undefined)
                   try
                        //ExternalInterface.call("logMessage", eventObj.toString());
                        _xmlDoc.parseXML(eventObj.toString());
                        _xmlDoc.loaded = true;
                        _xmlDoc.onLoad(true);
                   catch(ex)
                        _xmlDoc.onLoad(false);
              else
                   _xmlDoc.onLoad(false);
    I added the ExternalInterface call so that I could log the stuff out in javascript (since I'm not sure how to debug this app).
    _xmlDoc is defined as: private var _xmlDoc:XML;
    The eventObj receives the xml string and then passes it to the parseXML thing. Here's the odd part. In Flash Player 10, if I comment out my ExternalInterface call, the xml string has the escaped character decoded before it gets to the parser.
    However, if I uncomment my ExternalInterface call, it logs the escaped strings as i would expect, but the parser gets the correct formatting this time! Suddenly it all works.
    I really wish I had an AS2 programmer on campus still....

  • How to generate GUI code from parsed XML file?

    hai,
    I have to generate GUI code after parsing any configuration XML file as input.Now i have parsed my XML file and got its attributed and i want to get some idea of how to map the parsed XML attributes to the java code to build GUI code.

    Hello,
    1. I like to create data type from a XML file structure, which contains the data structure ?
    XML fields will need to be taken note of to see which is repeating or not. You can also load the XML into a third-party tool such as Altova XML Spy and then generate an XSD from there. You will need to import the XSDs into PI under external definitions. However, this does not guarantee business interoperability, as such, it is always best to ask the provider for the XSDs or WSDL. It will also save you a lot of time from guessing which fields are needed or not.
    2. How to create custom node function in graphical mapping editor ?
    In your graphical mapping editor, on the lowest left corner, there is an icon there that says Create New Function. You must take into account their return types:
    1. Single Values = String
    2. Queue/Context (no return type) thus resultList is used.
    Hope this helps,
    Mark

  • BI Publisher Word Template The report does not contain any data fields.

    I have OBIEE BI Publisher report (10.3.4) working fine using BIP but using MS Word 2003 I want to create new template and want to add charts etc.
    Step 1. In MS Word I successfully login Oracle BI Publisher as Administrator
    2. Oracle BI Publisher -> Open (I open the report)
    3. Go to Insert -> Table Wizard
    I get this error:
    The report does not contain any data fields. Please make sure that the reports generates data with the default settings or provide a valid XML file.
    Please help

    Hi
    How do I load XML data? Also why XML data load is required? Do I have to export XML data from BIP View screen and load from the same file from the word?
    Please clarify
    Thanks

  • LO Error 26005 Failed to parse XML

    Good Afternoon,
    I currently have an Xcelsius document that is attached to a Crystal Report that is in Infoview.  I have it connected by using Live Office.  The Crystal report basically contains a cross tab of data and is run nightly in our system.  I bring back the data into Excel in order to build an Xcelsius document off of it.  I havent' been using the Live Office piece all that much until recently therefore please excuse my ignorance.  I setup my data connection as a Live Office connection.  My server connection seems to be correct:
    http://WHGCRYSTAL3:8080/dswsbobje/services/session
    However, when I try to refresh the document, I get the following error:
    soapenv:Server.generalException: Failed to parse XML. (LO 26005)
    Any ideas as to what this could be?  I have Crystal Xcelsius Enterprise 2008.  The version is 5.0.0.99 and the build number is 12,0,0,121.  I think I am all updated on service packs but I could  be wrong.  Any help is appreciated.

    I downloaded all of the service packs and fixes and now I am up to date.  I am still getting the error with an additional error.   This is what is says:
    Failed to parse XML. (LO 26005) (LO 26000)
    Any other ideas as to why this is happening?

  • Parse XML in a java stored proc

    I am trying to parse an xml document in a java stored procedure. Just following my nose, I have developed a stored proc that works fine in development (outside the database using JRE 1.4.1) using the Xerces 2.5 parser. But, after having transferred the xerces xercesImpl.jar, xmlapis.jar, and my implementation class into oracle using loadjava when I call my stored proc the code throws an exception trying to build the document with an error like:
    NoClassDef exception org.apache.xerces.jaxp.DocumentFactoryBuilderImpl
    My Code looks like this:
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.FactoryConfigurationError;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.xml.sax.SAXException;
    InputStream is = getXMLAsInputStream(xml);
    try {
    DocumentBuilderFactory factory =
    DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse( is );
    ... parse the document ....
    catch (FactoryConfigurationError e) {
    // unable to get a document builder factory
    The exception caught is a FactoryConfigurtionError.
    I'm not particularly attached to xerces, I'm really just looking for a way to parse XML inside my java stored proc, so any help to solve my problem, or an alternative suggestion will be greatly appreciated.
    thanks
    Dale

    I looked again and sure enough the xerces implementation classes were missing. I had run a .cmd file containing these two lines, but it looks like only the first one ran...
    loadjava -u ncc/xyz@usd -v -r M:\Database\JavaGeocode\Xerces2_5_0\xml-apis.jar
    loadjava -u ncc/xyz@usd -v -r M:\Database\JavaGeocode\Xerces2_5_0\xercesImpl.jar
    Now I've got everything working fine with Xerces!
    Dale

  • Best way to read and parse XML to multiple tables

    This is first time using XML input file for JDev ADF 10.1.3.3 application. We are trying to develop an XML API that the application will read and process. A simple XML record would have field tags for table AA which has 1 to many tags for table BB. Table BB contains 0 to many tags for tables: CC, DD, and EE. Naturnally, the database is relational and there exist Foreign Keys for the Master-Detail relationships that are represents as View Objects in the JDev application.
    What is the best way for us to design and code this API?

    Hi,
    I don't really see any better options for SharePoint. SharePoint use other production called 'Office Web App' to allow users to view/edit Microsoft Office documents (word, excel etc.). But the web version of excel doesn't support that much records as well
    as there's size limitations (probably the default max size is 10MB).
    Regarding second problem, I think you need some custom solutions (like a SharePoint timer job/webpart ) to read and present data.
    However, if you can reduce the excel file records to something near 16k (which is supported rows in web version of excel) then you can use SharePoint Excel service to refresh data automatically in the excel file in SharePoint from some external sources.
    Thanks,
    Sohel Rana
    http://ranaictiu-technicalblog.blogspot.com

  • Parsing XML from a session bean

    Hi,
    I am trying to use a Sax parser for parsing xml received from a back end
    legacy system. The code is executed from a Session bean.
    Debugging learned me that the parse() method on the parser hangs the
    container without any error or exception trace. The code works fine outside
    a container.
    All help will be highly appreciated.
    Kurt

    I found out that the InputStream implementation used parsing source inside
    the container is different
    then from the one outside (other type of VM of course!). The Weblogic
    implementation blocks at the end of
    the stream, while the normal SUN JDK 1.3 returns. This is not a bug, the bug
    I found is in my proxy that allows
    the connection to the backend. This proxy allows HTTP connections, and I
    parse the XML received over HTTP.
    Regards,
    Kurt
    "Todd Karakashian" <[email protected]> wrote in message
    news:[email protected]..
    That's seems odd. Perhaps there is something going on in your document
    handler code that triggers a hang in the environment of the server.
    When you see the hang, instruct the VM to give you a thread dump (type
    control-<break> on Windows, <control>-\ (backslash) on UNIX in the
    window in which the server is running; the results are dumped to
    stderr). That will show what every thread in the server is doing. If you
    email or post the thread dump, I will take a look at it and see if I can
    see what is going on. Also, let us know which platform, VM, parser, and
    WebLogic version you are using.
    Regards,
    -Todd
    Kurt Quirijnen wrote:
    Hi,
    I am trying to use a Sax parser for parsing xml received from a back end
    legacy system. The code is executed from a Session bean.
    Debugging learned me that the parse() method on the parser hangs the
    container without any error or exception trace. The code works fine
    outside
    a container.
    All help will be highly appreciated.
    Kurt--
    Todd Karakashian
    BEA Systems, Inc.
    [email protected]

  • Error in retrieving and parsing XML File

    Hi Folks
    I am Working on People centric user interface, While i am custimizing a application in Business application Builder i am getting this error
    " Error in retrieving and parsing XML File "
    can any body look on this and give me the solution
    it will be rewarded
    Regards
    M.S.Kumar

    Hello,
    As mentionned by SAP_TECH, avoid to use the BAB.
    Go to CRMC_BLUEPRINT_C and use the different option in the menu to customize the field group, toolbar group, events, ...
    Use the PCUI cookbook to find your way.
    Regards,
    Fred

  • How to parse XML to Java object... please help really stuck

    Thank you for reading this email...
    If I have a **DTD** like:
    <!ELEMENT person (name, age)>
    <!ATTLIST person
         id ID #REQUIRED
    >
    <!ELEMENT name ((family, given) | (given, family))>
    <!ELEMENT age (#PCDATA)>
    <!ELEMENT family (#PCDATA)>
    <!ELEMENT given (#PCDATA)>
    the **XML** like:
    <person id="a1">
    <name>
         <family> Yoshi </family>
         <given> Samurai </given>
    </name>
    <age> 21 </age>
    </person>
    **** Could you help me to write a simple parser to parse my DTD and XML to Java object, and how can I use those objects... sorry if the problem is too basic, I am a beginner and very stuck... I am very confuse with SAXParserFactory, SAXParser, ParserAdapter and DOM has its own Factory and Parser, so confuse...
    Thank you for your help, Yo

    Hi, Yo,
    Thank you very much for your help. And I Wish you are there...I'm. And I plan to stay - It's sunny and warm here in Honolulu and the waves are up :)
    A bit more question for dear people:
    In the notes, it's mainly focus on JAXB,
    1. Is that mean JAXB is most popular parser for
    parsing XML into Java object? With me, definitely. There are essentially 3 technologies that allow you to parse XML documents:
    1) "Callbacks" (e.g. SAX in JAXP): You write a class that overrides 3 methods that will be called i) whenever the parser encounters a start tag, ii) an end tag, or iii) PCDATA. Drawback: You have to figure out where the heck in the document hierarchy you are when such a callback happens, because the same method is called on EACH start tag and similarly for the end tag and the PCDATA. You have to create the objects and put them into your own data structure - it's very tedious, but you have complete control. (Well, more or less.)
    2) "Tree" (e.g. DOM in JAXP, or it's better cousin JDOM): You call a parser that in one swoop creates an entire hierarchy that corresponds to the XML document. You don't get called on each tag as with SAX, you just get the root of the resulting tree. Drawback: All the nodes in the tree have the same type! You probably want to know which tags are in the document, don't you? Well, you'll have to traverse the tree and ask each node: What tag do you represent? And what are your attributes? (You get only strings in response even though your attributes often represent numbers.) Unless you want to display the tree - that's a nice application, you can do it as a tree model for JTree -, or otherwise don't care about the individual tags, DOM is not of much help, because you have to keep track where in the tree you are while you traverse it.
    3) Enter JAXB (or Castor, or ...): You give it a grammar of the XML documents you want to parse, or "unmarshall" as the fashion dictates to call it. (Actually the name isn't that bad, because "parsing" focuses on the input text while "unmarshalling" focuses on the objects you get, even though I'd reason that it should be marshalling that converts into objects and unmarshalling that converts objects to something else, and not vice versa but that's just my opinion.) The JAXB compiler creates a bunch of source files each with one (or now more) class(es) (and now interfaces) that correspond to the elements/tags of your grammar. (Now "compiler" is a true jevel of a misnomer, try to explain to students that after they run the "compiler", they still need to compile the sources the "compiler" generated with the real Java compiler!). Ok, you've got these sources compiled. Now you call one single method, unmarshall() and as a result you get the root node of the hierarchy that corresponds to the XML document. Sounds like DOM, but it's much better - the objects in the resulting tree don't have all the same type, but their type depends on the tag they represent. E.g if there is the tag <ball-game> then there will be an object of type myPackage.BallGame in your data structure. It gets better, if there is <score> inside <ball-game> and you have an object ballGame (of type BallGame) that you can simply call ballGame.getScore() and you get an object of type myPackage.Score. In other words, the child tags become properties of the parent object. Even better, the attributes become properties, too, so as far as your program is concerned there is no difference whether the property value was originally a tag or an attribute. On top of that, you can tell in your schema that the property has an int value - or another primitive type (that's like that in 1.0, in the early release you'll have to do it in the additional xjs file). So this is a very natural way to explore the data structure of the XML document. Of course there are drawbacks, but they are minor: daunting complexity and, as a consequence, very steep learning curve, documentation that leaves much to reader's phantasy - read trial and error - (the user's guide is too simplicistic and the examples too primitive, e.g. they don't even tell you how to make a schema where a tag has only attributes) and reference manual that has ~200 pages full of technicalities and you have to look with magnifying glas for the really usefull stuff, huge number of generated classes, some of which you may not need at all (and in 1.0 the number has doubled because each class has an accompanying interface), etc., etc. But overall, all that pales compared to the drastically improved efficiency of the programmer's efforts, i.e. your time. The time you'll spend learning the intricacies is well spent, you'll learn it once and then it will shorten your programming time all the time you use it. It's like C and Java, Java is order of magnitude more complex, but you'd probably never be sorry you gave up C.
    Of course the above essay leaves out lots and lots of detail, but I think that it touches the most important points.
    A word about JAXB 1.0 vs. Early Release (EA) version. If you have time, definitively learn 1.0, they are quite different and the main advantage is that the schema combines all the info that you had to formulate in the DTD and in the xjs file when using the EA version. I suggested EA was because you had a DTD already, but in retrospect, you better start from scratch with 1.0. The concepts in 1.0 are here to stay and once your surmounted the learning curve, you'll be glad that you don't have to switch concepts.
    When parser job is done,
    what kind of Java Object we will get? (String,
    InputStream or ...)See above, typically it's an object whose type is defined as a class (and interface in 1.0) within the sources that JABX generates. Or it can be a String or one of the primitive types - you tell the "compiler" in the schema (xjs file in EA) what you want!
    2. If we want to use JAXB, we have to contain a
    XJS-file? Something like:In EA, yes. In 1.0 no - it's all in the schema.
    I am very new to XML, is there any simpler way to get
    around them? It has already take me 4 days to find a
    simple parser which give it XML and DTD, then return
    to me Java objects ... I mean if that kind of parser
    exists....It'll take you probably magnitude longer that that to get really familiar with JAXB, but believe me it's worth it. You'll save countless days if not weeks once you'll start developing serious software with it. How long did it take you to learn Java and it's main APIs? You'll either invest the time learning how to use the software others have written, or you invest it writing it yourself. I'll take the former any time. But it's only my opinion...
    Jan

  • How to parse xml

    Hi All
    I want to parse xml document which contains more then one occurrence of particular element.
    I want to get some sub elements of that element and want take action on the basis of param tag inside this sub element.
    for example :
    <appender name="first" class="tempclass...">
    <param name="File" value="d:/test.log" />
    <filter class="">
    <param name="LevelToMatch" value="sdsds" />
    <param name="OtherParam" value="bla bla" />
    </filter>
    </appender>
    <appender name="second" class="tempclass...">
    </appender>
    my problem is how do i differentiate all "<appender>".
    I want values of "File" and "LevelToMatch" for each declaired appender
    and depending upon the values i want to take some decision.
    I dont know XML much
    I am using DOM parser.
    Please help me ASAP.
    Thanks in advance,

    hi,
    i hope u need to get the attribute values, right...
    if yes..create the DocumentBuilderFactory for the xml the uisng buildFactory method u will get the parser...from parser u cann go for anything....
    if u r not clearly, reply where do u struck...
    bye,
    suryakant.

Maybe you are looking for

  • Two separate copies of iTunes on one computer?

    Can I have two separate copies of iTunes on one computer? In Windows XP, I would like one copy on one user login, and a discrete different copy on another user login. My computer is not letting it install twice. How do I do this? Thanks! Dell   Windo

  • Lock screen in gnome 3.2

    Before the upgrade the upgrade to gnome 3.2 the following feature was working ok: whenever the laptop lid is closed the system suspends to RAM, whenever the laptop lid is opened up, the system resumes and the screen is locked. The screen lock feature

  • FORM personalizations, get an error: One or more required fields ....

    when Action type is set to Bulitin, and Builtin Type is RAISE FORM_TRIGGER_FAILURE, then press button: Apply Now to get the following error: One or more required fields are missing values. Why? Thanks

  • Does "Find My iPhone" work on the original iPhone?

    Does "Find My iPhone" work on the original iPhone, or just the 3G and 3G S? Also, after installing 3.0 on my original, it seems some apps were deleted, like Google and the weather app.

  • Form 6.0 report

    Can i Close report engine automatically, after closing that report which is running through report engine. thanks plz reply immediately.