XML parsing a spesific value with DOM

Hi guys.
I have the following xml file:
<channel>
      <title>Java Technology Headlines</title>
      <link></link>
      <description>Technical content and news from java.sun.com, the premier source of information about the Java platform.</description>
      <language>en-us</language>
      <image>
        <title>java.sun.com</title>
        <url>http://developers.sun.com/im/logo_java_grey.gif</url>
        <link></link>
        <width>144</width>
        <hight>40</hight>
        <description>Visit java.sun.com</description>
      </image>   
     <item>
        <title>Implementing Service-Oriented Architectures (SOA) with the Java EE 5 SDK</title>
        <link>http://java.sun.com/developer/technicalArticles/WebServices/soa3/?feed=JSC</link>
        <description>This article presents concepts and language constructs needed to develop a Service-Oriented Architecture composite application in Java EE 5. It then describes an example application designed to solve a business problem.</description>
        <date></date>
     </item>
     <item>
        <title>2006 JavaOne Highlights!</title>
        <link>http://java.sun.com/javaone/sf/?feed=JSC</link>
        <description>In It's a Wrap, read about the doings that kept 14,000 attendees percolating. Winner's Circle lists who won the various drawings. And Incoming T-Shirt! Duck! celebrates the Gosling-MythBusters' Wow factor.</description>
        <date></date>
     </item>
     <item>
        <title>Visit us at JavaOne!</title>
        <link>http://java.sun.com/javaone/sf/?feed=JSC</link>
        <description>We are at the 2006 JavaOne conference this week. Find out about the latest happenings, including session coverage, announcements, articles, blogs, photos, and more. Check out all the JavaOne action at java.sun.com/javaone/sf.</description>
        <date></date>
     </item>
</channel>    and the following java class.
public class SimpleDOMExample
  public SimpleDOMExample()
  private static void scanDOMTree(Node node)
    int type = node.getNodeType();
    switch (type)
      case Node.ELEMENT_NODE:
         //System.out.println("Element: " +node.getNodeName());
         if(node.getNodeName().equals("channel")&&node.getNodeName().equals("title"))
              //&& node.getNodeName().equals("title"))
             Node fc = node.getFirstChild();
              //Node sc = fc.getNextSibling();
            System.out.println("the tithe: "+ fc.getNodeValue());}
               if(node.getNodeName().equals("link")){
                // if ( node.getNodeName().equals("title") )//&& node.getNodeName().equals("title")
                  Node fc = node.getFirstChild();
                   //Node sc = fc.getNextSibling();
                 System.out.println("the url: "+ fc.getNodeValue());}
        NamedNodeMap attrs = node.getAttributes();
        for (int i = 0; i < attrs.getLength(); i++)
          Node attr = attrs.item(i);
          //System.out.println("Attribute: " +attr.getNodeName() + "=\"" + attr.getNodeValue());
        NodeList children = node.getChildNodes();
        if (children != null)  
          int len = children.getLength();
          for (int i = 0; i < len; i++)
            scanDOMTree(children.item(i));
        break;
      case Node.DOCUMENT_NODE:
        scanDOMTree(((Document)node).getDocumentElement()); 
        break;
      case Node.ENTITY_REFERENCE_NODE:
        //System.out.print("this &"+node.getNodeName()+";");
        break;
      case Node.TEXT_NODE:
       // System.out.println("TEXT: " + node.getNodeValue().trim());
        break;
     public static void main(String argv[])
          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
          Document document = null;
    try
               DocumentBuilder builder = factory.newDocumentBuilder();
               document = builder.parse( new File("java.xml"));
    catch (Exception e)
               e.printStackTrace();
    if(document!=null)
               scanDOMTree(document);
}The questions i have are really simple.
1) I am trying to get a specific value from the xml.
for example the <title> after <channel> but i want only this title not the others as well. I can all the titles but i cant get it right for returning only the first. What am i doing wrong?
2) i also want to parse the same values that are in the <item> for all 3 items but when i am using the
               if(node.getNodeName().equals("link")){
                 Node fc = node.getFirstChild();
                 System.out.println("the link: "+ fc.getNodeValue());}i get a nullPointerException because the first link is empty under the <title>. If i change it to <description> it works fine.
The fact is that i dont know how to point it to look a specific tags like only in <item>
I have some comments in there of the different things i tried...
Any suggestions??? Pleaseeeee.... :)
Thx in advance...

thx for the replay
1) i thought of using xpath but wanted to know how to do it over DOM
2) i mean that the 3 <item> have other element inside like that:
<item>
<title>Implementing Service-Oriented Architectures (SOA) with the Java EE 5 SDK</title>
  <link>http://java.sun.com/developer/technicalArticles/WebServices/soa3/?feed=JSC</link>
  <description>This article presents concepts and language constructs needed to develop a Service-Oriented Architecture composite application in Java EE 5. It then describes an example application designed to solve a business problem.</description>
  <date />
  </item>and all of them have <title>, <link> etc. I want to get the same values(eg. <title>) from all the 3 <item> and not including the <title> in the begining of xml
3) i am a professional child.....joke....
try to get to your sensitive side...thats way.

Similar Messages

  • How can I use a 3rd party XML parser such as xerces with OC4J ?

    Hi all tech experts,
    I am using Oracle Application Server 10g Release 2 (10.1.2) and i have
    installed Portal and Wireless and OracleAS Infrastructure on the same
    computer.
    i tried all the solutions on this thread
    Use of Xerces Parser in out application with Oracle App Server 9.0.4
    but still fighting.
    I have also posted this query on OTN on following thread
    How can I use a 3rd party XML parser such as xerces with OC4J?
    but no reply....
    Please help me on this issue.
    Since OC4J is preconfigured to use the Oracle XML parser which is xmlparserv2.jar.
    i have read the following article which states that
    OC4J is preconfigured to use the Oracle XML parser. The Oracle XML parser is fully JAXP 1.1 compatible and will serve the needs of applications which require JAXP functionality. This approach does not require the download, installation, and configuration of additional XML parsers.
    The Oracle XML parser (xmlparserv2.jar) is configured to load as a system level library of OC4J through it's inclusion as an entry in the Class-Path entry of the oc4j.jar Manifest.mf file. This results in the Oracle XML parser being used for all common deployment and packaging situations. You are not permitted to modify the Manifest.mf file of oc4j.jar.
    It must be noted that configuring OC4J to run with any additional XML parser or JDBC library is not a supported configuration. We do know customers who have managed to successfully replace the system level XML parser and the Oracle JDBC drivers that ship with the product, but we do not support this type of configuration due to the possibility of unexpected system behavior and system errors that might occur from replacing the tested and certified libraries.
    If you absolutely must use an additional XML parser such as xerces, then you have to start OC4J such that the xerces.jar file is loaded at a level above the OC4J system classpath. This can be accomplished using the -Xbootclasspath flag of the JRE.
    i have also run the following command
    java -Xbootclasspath/a:d:\xerces\xerces.jar -jar oc4j.jar
    but no success.
    How could i utilize my jar's like xerces.jar and xalan.jar for parsing instead of OC4J in-built parser ?
    All reply will be highly appreciated.
    Thnx in advance to all.
    Neeraj Sidhaye
    try_catch_finally @ Y !

    Hi Neeraj Sidhaye,
    I am trying to deploy a sample xform application to the Oracle Application Server (10.1.3). However, I encountered the class loader issue that is similar to your stuation. I tried all the three solutions but the application is still use the Oracle xml paser class. I am wondering if you have any insight about this?
    Thanks for your help.
    Xingsheng Qian
    iPass Inc.
    Here is the error message I got.
    Message:
    java.lang.ClassCastException: oracle.xml.parser.v2.XMLElement
    Stack Trace:
    org.chiba.xml.xforms.exception.XFormsException: java.lang.ClassCastException: oracle.xml.parser.v2.XMLElement
         at org.chiba.xml.xforms.Container.dispatch(Unknown Source)
         at org.chiba.xml.xforms.Container.dispatch(Unknown Source)
         at org.chiba.xml.xforms.Container.initModels(Unknown Source)
         at org.chiba.xml.xforms.Container.init(Unknown Source)
         at org.chiba.xml.xforms.ChibaBean.init(Unknown Source)
         at org.chiba.adapter.servlet.ServletAdapter.init(ServletAdapter.java:153)
         at org.chiba.adapter.servlet.ChibaServlet.doGet(ChibaServlet.java:303)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:719)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:299)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:187)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassCastException: oracle.xml.parser.v2.XMLElement
         at org.chiba.xml.xforms.Instance.iterateModelItems(Unknown Source)
         at org.chiba.xml.xforms.Bind.initializeModelItems(Unknown Source)
         at org.chiba.xml.xforms.Bind.init(Unknown Source)
         at org.chiba.xml.xforms.Initializer.initializeBindElements(Unknown Source)
         at org.chiba.xml.xforms.Model.modelConstruct(Unknown Source)
         at org.chiba.xml.xforms.Model.performDefault(Unknown Source)
         at org.chiba.xml.xforms.XFormsDocument.performDefault(Unknown Source)
         at org.chiba.xml.xforms.XFormsDocument.dispatchEvent(Unknown Source)
         at org.apache.xerces.dom.NodeImpl.dispatchEvent(Unknown Source)
         ... 18 more

  • Updating XML values with DOM

    Guys,
    I have XML that looks like this:
    <datasheet>
    <row num="1">
    <dept>test</dept>
    <code>test</code>
    <prints>test</prints>
    <origs>test</origs>
    <sf>test</sf>
    <price>test</price>
    <description>test</description>
    </row>
    <row num="2">
    <dept>asdf</dept>
    <code>adad</code>
    <prints>asdf</prints>
    <origs>adf</origs>
    <sf>asdf</sf>
    <price>asdf</price>
    <description>asdf</description>
    </row>
    </datasheet>
    I need to update this info useing DOM, can you help me out. I know how to update single fields but not when they are displayed like this.
              document.getElementsByTagName("department").item(0).getFirstChild().setNodeValue("COLOR2");
    can you help?

    So if it is NULL then we and and then if there is a record we just update like this rigth?
                   NodeList nl=document.getElementsByTagName("row");
                   for(int i=0; i<nl.getLength(); i++){
                        if(((Element)nl.item(i)).getElementsByTagName("dept").item(0).getFirstChild() == null){
                             ((Element)nl.item(i)).getElementsByTagName("dept").item(0).appendChild(document.createTextNode("tagtext"));
                        else {
                             ((Element)nl.item(i)).getElementsByTagName("dept").item(0).getFirstChild().setNodeValue("COLOR2");

  • XML Parser to insert values into a Table??

    Hi All,
    Bare with me I am new to xml technology, but apparently there's request to parse a xml file and store data in a oracle table.
    Appreciate if someone can help me to resolve this please??
    I am using Oracle 10g.
    This is the xml file which I need to parse.
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <PBOOKS>
    <BOOK>
    <KEY>0061319821</KEY>
    <ISBN>0-061-31982-1</ISBN>
    <![CDATA[<TTL>All Our Kin</TTL>]]>
    <![CDATA[<SUBTTL>Strategies For Survival In A Black Community</SUBTTL>]]>
    <![CDATA[<PAGES>192</PAGES>]]>
    </BOOK>
    </PBOOKS>
    I have a Oracle Table ( table name: Perseu ) to hold the values of this file:
    These are the fields:
    Key, ISBN, TTL, SUBTTL, Pages

    Due to the somewhat strange structure of the XML (Elements embedded inside the CDATA sections, do you have any idea why this is being done ?) the best I can come up with is
    SQL> drop table test
      2  /
    Table dropped.
    SQL> create table test of XMLType
      2  /
    Table created.
    SQL> insert into test values ( XMLTYPE(
      2  '<PBOOKS>
      3     <BOOK>
      4             <KEY>0061319821</KEY>
      5             <ISBN>0-061-31982-1</ISBN><![CDATA[<TTL>All Our Kin</TTL>]]><![CDATA[<SUBTTL>Strategies For Survival In A Black Community</S
    UBTTL>]]><![CDATA[<PAGES>192</PAGES>]]></BOOK>
      6  </PBOOKS>'))
      7  /
    1 row created.
    SQL> select BOOK, ISBN,
      2         extractValue(CDATA,'/CDATA/TTL') TTL,
      3         extractValue(CDATA,'/CDATA/SUBTTL') SUBTL,
      4         extractValue(CDATA,'/CDATA/PAGES') PAGES
      5    from (
      6           select extractValue(value(BOOK),'/BOOK/KEY') BOOK,
      7                  extractValue(value(BOOK),'/BOOK/ISBN') ISBN,
      8                  xmlType('<CDATA>' || extractValue(value(BOOK),'BOOK/text()') || '</CDATA>') CDATA
      9             from test,
    10                  table(xmlsequence(extract(object_value,'/PBOOKS/BOOK'))) book
    11         )
    12  /
    BOOK
    ISBN
    TTL
    SUBTL
    PAGES
    0061319821
    0-061-31982-1
    All Our Kin
    BOOK
    ISBN
    TTL
    SUBTL
    PAGES
    Strategies For Survival In A Black Community
    192
    SQL>
    SQL>
    SQL>

  • How do I change elements values with DOM?

    Hi, I'm trying to get to understand the DOM tutorials but I'm struggling with some things.. Basically I need to take an xml structure, read it and then change it to another xml structure. For instance, if I have the html sentence:
    <p id="id10">One flight was found </p>
    I would like to change it to a vxml sentence like
    <vxml:prompt vxml:id="id10" vxml:bargein="false">One flight was found.</vxml:prompt>
    And I need to do that to an entire file. I can read the html with the DOM (I'm following the http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/dom/index.html tutorial) and show it without troubles, but I don't know and I can't find the functions that would allow me to modify the values. By values I mean both the element tags such as converting <p>..</p> to <prompt>..</prompt> and the attributes (like the id attribute). Could anybody help me here please?

    Thanks for that, but still can't do it. I'm using Xerces as you suggested. The following chunk is not actually what I need to do but I can't manage to get it working either. Shouldn't this:
    Document doc= new DocumentImpl();
    Element item = doc.createElement("name");
    item.setNodeValue("nameChanged");
    change the <name> tag to a <nameChanged> tag? When I output it it's still <name>.
    I'm getting awfully confused with all the factories and models (yes, sorry, quite a newcomer, but I still need to do this somehow). If the following task is not too long/troublesome, could somebody please help me out with the code? Imagine you have a file with the content:
    <label id="1">Hello</label>
    and using xerces you want to create another file, without changing the first one, with the content:
    <anotherLabel id="1">Hello<anotherLabel>
    Edited by: victorNik on Sep 13, 2007 6:02 AM

  • Nls support with oracle xml parser in java

    I'm using The JAXP interface to manipulate xml with xsl. the implementation that I use is Oracle xml parser.
    My xml contains a lot of hebrew chars, and in the result stream each char translated into 5-6 chars, which makes the result to be 5-6 times bigger than it suppose to be, and harder for me to debug my application.
    The client's browser shows the results well.
    How can I make the transformator to transform the hebrew chars to hebrew char istead of longer and not readable string ?

    Oracle XML Team wrote:
    : Stephen Flinter (guest) wrote:
    : : Environment: WinNT 4.0/SP4, Apache 1.3.6, JServ 1.0, Oracle
    : 8.1.5
    : : I have downloaded the new Java v2 XML Parser (2.0.2), and
    have
    : : replaced the wrapper.classpath entry in my jserv.properties
    : file
    : : with the path to the new parser.
    : : When I rerun the "Employee Page" demo, I get the following
    : : exception message:
    : : [15/09/1999 11:02:22:974 GMT] java.lang.NoSuchMethodError:
    : : oracle.xml.parser.v2.XSLProcessor: method
    : : processXSL
    : (Loracle/xml/parser/v2/XSLStylesheet;Loracle/xml/parser
    : : /v2/XMLDocument;)Lorg/w3c/dom/DocumentFragment; not found
    : : at oracle.xml.xsql.XSLHelper.process(XSLHelper.java:34)
    : : at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java,
    : : Compiled Code)
    : : at
    : : javax.servlet.http.HttpServlet.service(HttpServlet.java:499)
    : : at
    : : javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
    : : at
    : : org.apache.jserv.JServConnection.processRequest
    : (JServConnection.j
    : : ava)
    : : at
    : : org.apache.jserv.JServConnection.run(JServConnection.java)
    : : at java.lang.Thread.run(Thread.java:479)
    : : This demo was works fine with the parser shipped with the
    : : xsql_servlet download.
    : : Regards,
    : : Steve
    : Version 2.0.2 uses the August XSLT WD which is incompatible
    with
    : the April WD on which our previous releases including the demos
    : were based.
    : Oracle XML Team
    : http://technet.oracle.com
    : Oracle Technology Network
    Hi,
    Can someone from the Oracle XML Team point us to a fix so we can
    continue our testing???
    Steve...
    null

  • XML Parse issues when using Network Data Model LOD with Springframework 3

    Hello,
    I am having issues with using using NDM in conjuction with Spring 3. The problem is that there is a dependency on the ConfigManager class in that it has to use Oracle's xml parser from xmlparserv2.jar, and this parser seems to have a history of problems with parsing Spring schemas.
    My setup is as follows:
    Spring Version: 3.0.1
    Oracle: 11GR2 and corresponding spatial libraries
    Note that when using the xerces parser, there is no issue here. It only while using Oracle's specific parser which appears to be hard-coded into the ConfigManager. Spring fortunately offers a workaround, where I can force it to use a specific parser when loading the spring configuration as follows:
    -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl But this is an extra deployment task we'd rather not have. Note that this issue has been brought up before in relation to OC4J. See the following link:
    How to change the defaut xmlparser on OC4J Standalone 10.1.3.4 for Spring 3
    My question is, is there any other way to configure LOD where it won't have the dependency on the oracle parser?
    Also, fyi, here is the exception that is occurring as well as the header for my spring file.
    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
    Line 11 in XML document from URL [file:/C:/projects/lrs_network_domain/service/target/classes/META-INF/spring.xml] is invalid;
    nested exception is oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
         [snip]
         ... 31 more
    Caused by: oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'
         at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:425)
         at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287)
         at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:331)
         at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:222)
         at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:155)
         at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388)Here is my the header for my spring configuration file:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">Thanks, Tom

    I ran into this exact issue while trying to get hibernate and spring working with an oracle XMLType column, and found a better solution than to use JVM arguments as you mentioned.
    Why is it happening?
    The xmlparserv2.jar uses the JAR Services API (Service Provider Mechanism) to change the default javax.xml classes used for the SAXParserFactory, DocumentBuilderFactory and TransformerFactory.
    How did it happen?
    The javax.xml.parsers.FactoryFinder looks for custom implementations by checking for, in this order, environment variables, %JAVA_HOME%/lib/jaxp.properties, then for config files under META-INF/services on the classpath, before using the default implementations included with the JDK (com.sun.org.*).
    Inside xmlparserv2.jar exists a META-INF/services directory, which the javax.xml.parsers.FactoryFinder class picks up and uses:
    META-INF/services/javax.xml.parsers.DocumentBuilderFactory (which defines oracle.xml.jaxp.JXDocumentBuilderFactory as the default)
    META-INF/services/javax.xml.parsers.SAXParserFactory (which defines oracle.xml.jaxp.JXSAXParserFactory as the default)
    META-INF/services/javax.xml.transform.TransformerFactory (which defines oracle.xml.jaxp.JXSAXTransformerFactory as the default)
    Solution?
    Switch all 3 back, otherwise you'll see weird errors.  javax.xml.parsers.* fix the visible errors, while the javax.xml.transform.* fixes more subtle XML parsing (in my case, with apache commons configuration reading/writing).
    QUICK SOLUTION to solve the application server startup errors:
    JVM Arguments (not great)
    To override the changes made by xmlparserv2.jar, add the following JVM properties to your application server startup arguments.  The java.xml.parsers.FactoryFinder logic will check environment variables first.
    -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl
    However, if you run test cases using @RunWith(SpringJUnit4ClassRunner.class) or similar, you will still experience the error.
    BETTER SOLUTION to the application server startup errors AND test case errors:
    Option 1: Use JVM arguments for the app server and @BeforeClass statements for your test cases.
    System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
    System.setProperty("javax.xml.parsers.SAXParserFactory","com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl");
    System.setProperty("javax.xml.transform.TransformerFactory","com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
    If you have a lot of test cases, this becomes painful.
    Option 2: Create your own Service Provider definition files in the compile/runtime classpath for your project, which will override those included in xmlparserv2.jar.
    In a maven spring project, override the xmlparserv2.jar settings by creating the following files in the %PROJECT_HOME%/src/main/resources directory:
    %PROJECT_HOME%/src/main/resources/META-INF/services/javax.xml.parsers.DocumentBuilderFactory (which defines com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl as the default)
    %PROJECT_HOME%/src/main/resources/META-INF/services/javax.xml.parsers.SAXParserFactory (which defines com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl as the default)
    %PROJECT_HOME%/src/main/resources/META-INF/services/javax.xml.transform.TransformerFactory (which defines com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl as the default)
    These files are referenced by both the application server (no JVM arguments required), and solves any unit test issues without requiring any code changes.
    This is a snippet of my longer solution for how to get hibernate and spring to work with an oracle XMLType column, found on stackoverflow.

  • C XML Parser - Writing XML

    Is there an easier way to write the contents of an XML document (built up in memory using DOM API calls) to a string, other than reading document back and using native C code to output each element. Perhaps call to PL/SQL XML Parser function?

    Starting with 2.0.4, we have printStream() and printBuffer().

  • Oracle XML Parser for Java

    Does the latest release of the Oracle XML Parser for Java support JDK 1.2.2?
    I have an application which makes use of the XML Parser which runs fine with JDK 1.1.7.
    But the application crashes with the use of JDK 1.2.2 .
    Any insight into this is appreciated.
    null

    The Oracle XSQL Servlet makes extensive use of the Oracle XML Parser for Java V2 as well as its XSLT Engine and runs without issue under 1.1.8 and 1.2.2.

  • XML PARSER for JAVA V9.0.4 version check

    Hi,
    One of post patch activity for RUP7 in 11i(11.5.10.2) is UPGRADE ORACLE XML Parser for java V9.0.4 version (required). When I checked few things it's confirm that I'm already in java V9.0.4 version?
    Is there any script/doc where I can look and check "XML PARSER for JAVA V9.0.4 version in Oracle E-business Suite 11.5.10.2?
    thanks

    Hi,
    Please see these docs.
    Upgrading Oracle XML Parser v9.0.4 with Oracle Applications 11i [ID 271148.1]
    How To Setup Oracle XML parser with PL/SQL with Oracle Applications 11i [ID 160474.1]
    Oracle XML Gateway Troubleshooting Guide [ID 167474.1]
    XML Gateway Setup Testing and Diagnostics [ID 337428.1]
    Thanks,
    Hussein

  • Sax XML Parser? URLDecoder.decode bad in applet? Explorer Browser jvm?

    Ok, here it goes folks, I have a serious problem with Explorers jvm, I'm developing using jdk 1.3.1 to write swing applets, in anyevent little functions that I use will not work with Explorers Browser, for example, the Explorer JVM understands the Vector addElement function, but not the Vector add function? Also, It doesn't recognize the HashMap class? Ok, is there anyway to control the JVM used with Explorer? Ok, but here goes my real question?
    I am writing an applet/servlet that interfaces with an oracle database. The data is returned in the form of xml. We are using the Sax XML parser interface. The parser code previously in the servlet(server side) and worked fine, but I've now moved the parsing code to the applet side, however, it seems to not want to work on the applet side. It simply hangs? I think it's a jvm issue, I've been getting many hangs with seemingly standard classes and methods, such as URLDecoder.decode(). Anyone else run into this problem using the Sax XML Parser, I have no idea what classes in the SAX Parser could be giving us a problems, or if that is even my issue. Anyone else using SAX XML parsing in an applet with Explorer 5.5. or 5.0, please let me know, if you've had issues?
    Sorry, to be so long winded, and not explaining the problem very well.

    First, get Sun's Java Plug-in from http://java.sun.com/products/plugin/index-1.4.html
    and read up on how to make your browser use it instead.

  • Xml Parser download

    Hi all,
    Anybody Please tell me where can I download XML parser ?
    I have to download and install an XML parser that is compatible with the Java API for XML Parsing (JAXP) 1.1 specification to run struts Program.
    Please give the absulute url......
    Thanks in advance.
    Please rePly soon
    Amitindia

    there is one built into the jdk. 1.4/1.5 at least.
    If you want a separate jar for some reason, or more doc help, try
    http://xerces.apache.org/xerces2-j/

  • *URGENT * Parsing nd Searching XML with DOM

    Hi,
    I am Juliana, I am a new grad, a new employee and brand new to XML, I am learning to parse XML with the XML parser for PLSQL.
    Please anyone help me how to parse the following XML string so that I will display all the session and its time schedule, or if possible display only the session that I want to display.
    Thank you very much for any of your help
    Juliana
    <Student> Id="9130099">
    <Class>
    <Session>A-100</Session>
    <Session>A-200</Session>
    <Session>A-300</Session>
    <Session>A-400</Session>
    <session>A-500</Session>
    </Class>
    <Time> At:
    <At>10:30</At>
    <At>12:30</At>
    <At>02:30</At>
    <At>04:30</At>
    <At>05:30</At>
    </time>
    </Student>

    thx for the replay
    1) i thought of using xpath but wanted to know how to do it over DOM
    2) i mean that the 3 <item> have other element inside like that:
    <item>
    <title>Implementing Service-Oriented Architectures (SOA) with the Java EE 5 SDK</title>
      <link>http://java.sun.com/developer/technicalArticles/WebServices/soa3/?feed=JSC</link>
      <description>This article presents concepts and language constructs needed to develop a Service-Oriented Architecture composite application in Java EE 5. It then describes an example application designed to solve a business problem.</description>
      <date />
      </item>and all of them have <title>, <link> etc. I want to get the same values(eg. <title>) from all the 3 <item> and not including the <title> in the begining of xml
    3) i am a professional child.....joke....
    try to get to your sensitive side...thats way.

  • To convert XML to ABAP internal table can we do it with DOM or we need XSLT

    I have a requirement where I need to collect the data from XML file into an internal table.
    I need to collect this data into an internal table as I should make use of this data and do Goods Receipt in SAP.
    My XML file is very very complex and the child nodes in my XML file may occur ones or 10 times and change dynamically.
    I want to know if XML to ABAP internal table is possible with DOM or does it need XSLT too.
    I used the blog of Robert which uses DOM, but it I am unable to collect the data in internal table. The blog explains only how to wtite the out put to screen as element and value.
    I want to know if XML to ABAP internal table is possible with DOM or do I need XSLT too? I am confused please help.
    Any help will be highly appreciated.
    Regards,
    Jessica Sam

    Hello Jessica
    Why not using the DOM itself for processing?
    Below you see the post-processing coding which I use to add the interchange control number (ICN) into an EDI message (which at this stage is still an XML-EDI stream). This is done on SAP-XI yet on the ABAP stack so you could use this approach on your R/3 system as well.
    method POSTPROCESSING.
    * Post-Processing of outbound EDI invoices & dispatch advices
      me->map_icn( ).
    endmethod.
    method MAP_ICN.
    * define local data
      DATA: lo_node       TYPE REF TO if_ixml_node,
            ld_name       TYPE string,
            ld_value      TYPE string,
            ld_error_code type MPG_ERRCODE,
    **        ld_control_number   TYPE char13,
            ld_rc         TYPE i,
            ld_msg        TYPE string.  " bapi_msg.
      DATA: ld_interface  TYPE string.
      DATA: incode TYPE REF TO if_ixml_node_collection.
      LOG-POINT ID zedi
        SUBKEY mc_subkey_method_trace.
      ld_error_code = md_clsname.
    * Get next interchange control number (ICN)
      me->md_next_number = me->get_next_number(
          id_nrobj  = me->md_nrobj   " Object (SNRO)
          id_nrnr   = me->md_nrnr ). " Number Range
      CALL METHOD zcl_edi_uk_counter=>calculate_modulo_n09
        EXPORTING
          id_input  = me->md_next_number
        receiving
          rd_output = me->md_next_number.
    * Build ICN according to naming conventions agreed with EDI customer
      me->md_icn = me->generate_icn( me->md_next_number ).
      ld_value = me->md_icn.  " type conversion to string
      CLEAR: incode,
             lo_node.
      incode  = me->mo_document->get_elements_by_tag_name( mc_d_0020 ).
      lo_node = incode->get_item( index = 0 ).
      CALL METHOD lo_node->set_value
        EXPORTING
          value = ld_value
        RECEIVING
          rval  = ld_rc.
      IF ( ld_rc NE 0 ).
        CONCATENATE 'Error [' mc_d_0020
                    ']: Method SET_VALUE (IF_IXML_NODE)'
                    INTO ld_msg.
        CONDENSE ld_msg.
        me->mif_trace->trace2( message = ld_msg ).
        RAISE EXCEPTION TYPE cx_mapping_fault
          EXPORTING
    *        textid =
    *        previous =
            error_code = ld_error_code
            error_text = ld_msg.
    **    MESSAGE ld_msg TYPE 'A'.
      ENDIF.
      CLEAR: incode,
             lo_node.
      incode  = me->mo_document->get_elements_by_tag_name( mc_d_0020_2 ).  " element for ICN
      lo_node = incode->get_item( index = 0 ).
      CALL METHOD lo_node->set_value
        EXPORTING
          value = ld_value
        RECEIVING
          rval  = ld_rc.
      IF ( ld_rc NE 0 ).
        CONCATENATE 'Error [' mc_d_0020_2
                    ']: Method SET_VALUE (IF_IXML_NODE)'
                    INTO ld_msg.
        CONDENSE ld_msg.
        me->mif_trace->trace2( message = ld_msg ).
        RAISE EXCEPTION TYPE cx_mapping_fault
          EXPORTING
    *        textid =
    *        previous =
            error_code = ld_error_code
            error_text = ld_msg.
    **    MESSAGE ld_msg TYPE 'A'.
      ENDIF.
    * define local data
      DATA: ls_record       TYPE mpp_dynamic.
      CLEAR: ls_record.
      ls_record-namespace = mc_dynamic_namespace.
      ls_record-name      = mc_icn.
      ls_record-value     = ld_value.
      mif_dynamic->add_record( ls_record ).
    endmethod.
    In your case you would need to do a DO...ENDDO loop until you parsed all required nodes.
    NOTE: ME->MO_DOCUMENT is of TYPE REF TO IF_IXML_DOCUMENT.
    Regards
       Uwe

  • Wrong XML parsing in Java  6.0 , the same code works fine with Java 5.0

    I have the following xml data in a file ( C:\_rf\jrebug.xml ) :
    <?xml version="1.0" encoding="UTF-8"?>
    <rs>
         <data
              input3='aa[1]'
              input4='bb[1]'
              input6='cc[2]'
              input8='dd[7]'
              output2='ee[7]'
              output4='ff[511]'
              output6='gg[15]'
              output7='hh[1]'
         />
    </rs>
    I have the following code to parse this XML data :
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NamedNodeMap;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Node;
    import org.xml.sax.SAXException;
    import org.xml.sax.ErrorHandler;
    import org.xml.sax.SAXParseException;
    public class DomParserBug {
         Document dom;
         public void runExample() {
    parseXmlFile("C:\\_rf\\jrebug.xml");
              parseDocument();
         private void parseXmlFile(String filename){
              //get the factory
              DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
              //dbf.setValidating(true);
    dbf.setValidating(false);
              try {
                   //Using factory get an instance of document builder
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   db.setErrorHandler(new MyErrorHandler());
                   //parse using builder to get DOM representation of the XML file
                   dom = db.parse(filename);
              }catch(ParserConfigurationException pce) {
                   pce.printStackTrace();
              catch(SAXParseException spe) {
                   spe.printStackTrace();
              catch(IOException ioe) {
                   ioe.printStackTrace();
              catch(SAXException se) {
                   se.printStackTrace();
    private void parseDocument()
    Element docEle = dom.getDocumentElement();
    NodeList nl = docEle.getElementsByTagName("data");
    if(nl != null && nl.getLength() > 0)
    for(int i = 0 ; i < nl.getLength();i++)
    Element el = (Element)nl.item(i);
    NamedNodeMap attrsssss = el.getAttributes();
    for (int ii=0; ii<attrsssss.getLength(); ++ii)
    Node attr = attrsssss.item(ii);
    System.out.println("Attribute name is =" attr.getNodeName() " AND Attribute value is ="+attr.getNodeValue());
         public static void main(String[] args){
              DomParserBug dpe = new DomParserBug();
              dpe.runExample();
         class MyErrorHandler implements ErrorHandler {
              public void error(SAXParseException e) {
              System.out.println("error : " +e.toString());
         // This method is called in the event of a non-recoverable error
         public void fatalError(SAXParseException e) {
         System.out.println("fatalError : " +e.toString());
         // This method is called in the event of a warning
         public void warning(SAXParseException e) {
         System.out.println("warning : " +e.toString());
    The parsed output is :
    Attribute name is =input3 AND Attribute value is =aa[1]
    Attribute name is =input4 AND Attribute value is =bb[1]
    Attribute name is =input6 AND Attribute value is =cc[2]
    Attribute name is =input8 AND Attribute value is =dd[7]
    Attribute name is =output2 AND Attribute value is =ee[7]
    Attribute name is =output4 AND Attribute value is =ff[511]
    Attribute name   is  =output6 AND Attribute value  is =hh[1]]
    Attribute name   is  =output7 AND Attribute value  is =hh[1]
    THE LAST TWO LINES ARE SIMPLY WRONG.
    With java 5.0 the last two lines are parsed correctly :
    Attribute name   is  =output6 AND Attribute value  is =gg[15]
    Attribute name   is  =output7 AND Attribute value  is =hh[1]
    I have seen this issue only after I upgraded to java 6.0. I have searched the java 6.0 bug database but there is nothing there.
    I have also submitted a bug to the bugdatabase last month but have not heared anything.
    Anybody have any clue about this ???
    Thanks
    Edited by: skaushik on Jan 4, 2008 12:40 AM
    Edited by: skaushik on Jan 4, 2008 6:38 PM

    I have seen similar issue. I found that if you remove the square brackets from the first line in teh XML file, the last two lines are parsed correctly.
    Replace the follwing line : :
    Attribute name is =input3 AND Attribute value is =aa[1]
    with :
    Attribute name is =input3 AND Attribute value is =aa
    and the output is CORRECT :
    Attribute name is =input3 AND Attribute value is =aa
    Attribute name is =input4 AND Attribute value is =bb[1]
    Attribute name is =input6 AND Attribute value is =cc[2]
    Attribute name is =input8 AND Attribute value is =dd[7]
    Attribute name is =output2 AND Attribute value is =ee[7]
    Attribute name is =output4 AND Attribute value is =ff[511]
    Attribute name   is  =output6 AND Attribute value  is =gg[15]
    Attribute name   is  =output7 AND Attribute value  is =hh[1]

Maybe you are looking for

  • How to build query which list only active PC's

    Hi guys, I have to install SCCM client on many devices in my enviroment. Unfortunately, SCCM has found amny devices which still have accounts in AD but are not used for looong time. I would like to list only devices, which hasen't installed SCCM clie

  • Re: Error starting weblogic (ArrayIndexOutOfBounds)

     

  • Highlight text and drag over Safari icon to start a search

    A few years back, it was possible in Safari to highlight text and drag and drop it over the Safari icon to instantly start a Google or Yahoo search.  That no longer seems to work.  Now, I'm running Snow Leopard with the newest version of Safari.  Bac

  • HOW TO CHECK SELECTIONS IN iTUNES

    How can I check the little boxes next to all the songs I have in iTunes AT THE SAME TIME? I could do this easily on the earlier version I had of iTunes, but I do not see any way to do it on the latest version, which I was foolish enough to "update" t

  • Navigate with MVC and XML pages

    Hi guys, I'm having some trouble with navigating through my app. Although there are lots of examples on SCN, it's probably something that I didn't pick up or I missed. I'm creating an app, that has an index.HTML starter file, and all others are XML.