Hi Pierpaolo

I cannot get Xerces DOMParser to properly handle an embedded @amp;.  IT just 
deletes it
without createing
any other nodes.  Attached is the input file and here is my DOCTree creation 
code.

   Document getDocTree(String xmlString)
      throws JavaAdapterException
   {
      // Uses xerces

      Document doc = null;

      StringReader stringReader = new StringReader(xmlString);
    InputSource input = new InputSource(stringReader);;
      m_parser = new DOMParser();
      try
      {
         // String[] as1 = m_parser.getFeaturesRecognized();
         // String[] as2 = m_parser.getPropertiesRecognized();
         
m_parser.setFeature("http://apache.org/xml/features/dom/defer-node-expansion";,
false);

m_parser.setFeature("http://apache.org/xml/features/continue-after-fatal-error";,
 true);

         m_parser.setFeature( "http://xml.org/sax/features/validation";, true);

m_parser.setFeature("http://apache.org/xml/features/dom/create-entity-ref-nodes",false);

         Errors errors = new Errors();
         m_parser.setErrorHandler(errors);
         m_parser.parse(input);
         doc = m_parser.getDocument();
      }
      catch(SAXException spEx)
      {
         throw new JavaAdapterException(
            "JADocTree parse",
            JavaAdapterException.EXC_XML_PARSE_ERROR,
            spEx.getMessage());
      }
      catch(IOException ioEx)
      {
         throw new JavaAdapterException("JADocTree parse",
            JavaAdapterException.EXC_XML_PARSE_ERROR,"IO Error");
      }

      // normalize text representation
      doc.getDocumentElement ().normalize ();

      return doc;
   }


I tried the mail address you suggested below and no reply.

cheers
Jim

Pierpaolo Fumagalli wrote:

> Bluestream - Boris Garbuzov wrote:
> >
> > Hello, guys. Can you please tell us how to join your Xerses news group
> > or mailing list or refer us to right people? Particularly we have
> > question how to handle ampersant "&" with your parser. If the text "Love
> > & Sweetness" is a fragment of xml file, then it gives an error. If to
> > change & to &, it just swallows it unlike other parsers who convert
> > it to regular ampersant.
>
> I believe you're using a DOMParser, and you don't find a text node for
> your & character. This is because an entity reference node is
> inserted and this one has a child text node with the value of the &...;
> thing.
> Try to disable setting up the parser in this way:
>
> > DOMParser p=new DOMParser();
> > p.setFeature("http://apache.org/xml/features/dom/create-entity-ref-nodes",false);
> > p.parse(in);
> > Document document=p.getDocument();
>
> It should work... Otherwise send mail to the appropriate mailing list
> wich is [EMAIL PROTECTED]
>
>         Pier

--
----------------------------------------------------------
Jim Tivy - Bluestream Database Software Corp.
1168 Hamilton Street, Suite 200, Vancouver BC V6B 2S2
Tel: (604) 669-4469 ext 116 Fax: (604) 669-4469
E-Mail: mailto:[EMAIL PROTECTED]  http://www.bluestream.com
----------------------------------------------------------

<MVData xml:space="preserve">
<Record Id="29751931*4"><Field>Silverfish &amp; Goldfish</Field><Field>4:00.427</Field><Field>44</Field></Record>
</MVData>

Reply via email to