Home » Developer & Programmer » JDeveloper, Java & XML » got LPX-00601: Invalid token while try to read xml (windoes xp , oracle 10g)
got LPX-00601: Invalid token while try to read xml [message #478883] Wed, 13 October 2010 03:25 Go to next message
yairk30
Messages: 14
Registered: May 2006
Location: israel
Junior Member
HEY, I have problem while trying to read data from xml.
got LPX-00601: Invalid token err.

my proc to read xml is:

procedure read_xml_file_test (in_filename in varchar2)
is
my_dir varchar2(20) := 'XML_DIR;
cur_emp2 number:=0;
l_bfile BFILE;
l_clob CLOB;
l_parser dbms_xmlparser.Parser;
l_doc dbms_xmldom.DOMDocument;
l_nl dbms_xmldom.DOMNodeList;
l_nl2 dbms_xmldom.DOMNodeList;
l_n dbms_xmldom.DOMNode;
l_n2 dbms_xmldom.DOMNode;
l_temp VARCHAR2(1000);
v_errors internet_clients.errors%type;
src_csid NUMBER := NLS_CHARSET_ID('UTF8');
dest_offset INTEGER := 1;
src_offset INTEGER := 1;
lang_context INTEGER := dbms_lob.default_lang_ctx;
warning INTEGER;
v_count number := 0; --total records
v_count_s number := 0; -- sucsess record
v_count_f number := 0; -- failed record
v_flag varchar2(1);
v_site varchar2(255);
v_internet_compid internet_clients.internet_compid%type;
v_char2 varchar2(1);
v_l1 VARCHAR2(255);
v_l2 VARCHAR2(255);
v_l3 VARCHAR2(255);
v_l4 VARCHAR2(255);
v_l6 VARCHAR2(255);

BEGIN
l_bfile := BFileName(my_dir, in_filename);

dbms_lob.createtemporary(l_clob, cache=>FALSE);
dbms_lob.open(l_bfile, dbms_lob.lob_readonly);
dbms_lob.loadclobfromfile(l_clob, l_bfile, dbms_lob.getlength(l_bfile), dest_offset,src_offset, src_csid, lang_context, warning);
dbms_lob.close(l_bfile);
-- make sure implicit date conversions are performed correctly
dbms_session.set_nls('NLS_DATE_FORMAT','''DD/MM/RR HH24:MI:SS''');
-- Create a parser.
l_parser := dbms_xmlparser.newParser;
-- Parse the document and create a new DOM document.
dbms_xmlparser.parseClob(l_parser, l_clob);
l_doc := dbms_xmlparser.getDocument(l_parser);
-- Free resources associated with the CLOB and Parser now they are no longer needed.
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
-- Get a list of all the nodes in the document using the XPATH syntax.
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:d iffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP');

-- Loop through the list and create a new record in a tble collection
-- for each record.
FOR cur_emp IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
l_n := dbms_xmldom.item(l_nl, cur_emp);
l_nl2 := dbms_xslprocessor.selectNodes(l_n,'lead');
cur_emp2:=0;
-- FOR cur_emp2 IN 0 .. dbms_xmldom.getLength(l_nl2) - 1 LOOP
loop
v_count := v_count + 1;
begin
l_n2 := dbms_xmldom.item(l_nl2, cur_emp2);
-- Use XPATH syntax to assign values to he elements of the collection.
dbms_xslprocessor.valueOf(l_n2,'L1/text()',v_l1);
dbms_xslprocessor.valueOf(l_n2,'L2/text()',v_l2);
dbms_xslprocessor.valueOf(l_n2,'L3/text()',v_l3);
dbms_xslprocessor.valueOf(l_n2,'L4/text()',v_l4);
dbms_xslprocessor.valueOf(l_n2,'L6/text()',v_l6);
--dbms_output.put_line(v_l1);
exception
when others then
null;
end;

exit when cur_emp2=dbms_xmldom.getLength(l_nl2);
END LOOP;
end loop;
-- Free any resources associated with the document now it
-- is no longer needed.
dbms_xmldom.freeDocument(l_doc);

--remove file to another directory
--COMMIT; -- do not use the commit if you want to run this proc. from within the search_dir_list proc , because it execute a select from tmp table dir_list which contain a "on commit delete rows" clause.
/*EXCEPTION
WHEN OTHERS THEN
dbms_lob.freetemporary(l_clob);
dbms_xmlparser.freeParser(l_parser);
dbms_xmldom.freeDocument(l_doc);
null;
ROLLBACK; */
END;

While trying to execute this i got:

ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00601: Invalid token in: 'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:diffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP'
ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 939
ORA-06512: at "XDB.DBMS_XSLPROCESSOR", line 967
ORA-06512: at "MARKET.READ_XML_FILE_TEST", line 51
ORA-06512: at line 1

i guess i mised somthing at the line


Code: Select all
l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(l_doc),'soap:Envelope/soap:Body/GetFieldsNameResponse/GetFieldsNameResult/diffgr:d iffgram/DataSet_FRM_GANERIC_PROP/FRM_GANERIC_PROP');

i attached here part of my xml:


Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
- <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <soap:Body>
- <GetFieldsNameResponse xmlns="http://tempuri.org/">
- <GetFieldsNameResult>
- <xs:schema id="DataSet_FRM_GANERIC_PROP" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="DataSet_FRM_GANERIC_PROP" msdata:IsDataSet="true" msdata:Locale="he-IL">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="FRM_GANERIC_PROP">
- <xs:complexType>
- <xs:sequence>

</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <DataSet_FRM_GANERIC_PROP xmlns="">
- <FRM_GANERIC_PROP diffgr:id="FRM_GANERIC_PROP1" msdata:rowOrder="0">
<L1>val1</L1>
<L2>val2</L2>
<L3>val3</L3>
<L4>val4</L4>
<L6>val6</L6>
</FRM_GANERIC_PROP>
</DataSet_FRM_GANERIC_PROP>
</diffgr:diffgram>
</GetFieldsNameResult>
</GetFieldsNameResponse>
</soap:Body>
</soap:Envelope>

I Guess it somthing that have to do with node definition ,
but i have tried so many combinations and none ot those worked for me.
i'm deeply stuck here.

What do i miss here?

THANKS yair
Re: got LPX-00601: Invalid token while try to read xml [message #478888 is a reply to message #478883] Wed, 13 October 2010 04:14 Go to previous messageGo to next message
Michel Cadot
Messages: 68625
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
From your previous posts:

Michel Cadot wrote on Wed, 17 September 2008 17:28
Always use SQL*Plus and copy and paste your session.

But before
please read OraFAQ Forum Guide, especially "How to format your post?" section.
Make sure that lines of code do not exceed 80 characters when you format.
Indent the code (See SQL Formatter).
Use the "Preview Message" button to verify.
Also always post your Oracle version (4 decimals).

Regards
Michel


yairk30 wrote on Mon, 30 June 2008 14:03
Hey all !
...

[Mod-Edit: Frank added code-tags to improve readability]


Do it!
Also always post your Oracle version, with 4 decimals.

Regards
Michel

[Updated on: Wed, 13 October 2010 04:14]

Report message to a moderator

Re: got LPX-00601: Invalid token while try to read xml [message #479019 is a reply to message #478888] Thu, 14 October 2010 04:50 Go to previous messageGo to next message
yairk30
Messages: 14
Registered: May 2006
Location: israel
Junior Member
hey ,
I'll be gladd to re-edit my post,
but how can i do it?
(the "how to edit" explain is not clear enougth for me at the help guide).

my oracle version:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

thanks
yair
Re: got LPX-00601: Invalid token while try to read xml [message #479026 is a reply to message #479019] Thu, 14 October 2010 05:52 Go to previous messageGo to next message
Michel Cadot
Messages: 68625
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
You cannot edit your post as soon as it has been answered.
But you can repost it.

Regards
Michel
Re: got LPX-00601: Invalid token while try to read xml [message #479058 is a reply to message #479026] Thu, 14 October 2010 08:30 Go to previous message
yairk30
Messages: 14
Registered: May 2006
Location: israel
Junior Member
ok!

pls. delete this one.
Previous Topic: Problem getting parent node element in XML Table
Next Topic: Problem with namespaces in XML
Goto Forum:
  


Current Time: Fri Mar 29 08:33:17 CDT 2024