Re: XML namespace problem

From: Maxim Demenko <mdemenko_at_gmail.com>
Date: Sat, 07 Mar 2009 12:04:28 +0100
Message-ID: <49B254BC.1010001_at_gmail.com>


timo schrieb:
> Hi all,
> I'm facing difficulties with namespaces when reading XML to database; xml is
> like this;
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <?xml-stylesheet type="text/xsl" href="../oper_fct.xsl"?>
> <test abc:thisone="O1" xmlns="abc" xmlns:abc="abc"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="abc ../abc_abc.xsd">
> <blaa>
> ABCABC
> </blaa>
> </test>
>
> Problem is to read out that attribute "abc:thisone"; I've tried many ways to
> get it in PL/SQL like
> ....
> xlsprocessor.valueof(l_node, '_at_abc:thisone')
> ...
> and I've tried
> ...
> xlsprocessor.valueof(l_node, '_at_thisone')
> ...
>
> What is the right way to get it ???
> Any help would be appreciated,
> BR,
> Timo
>
>
>

You should specify the namespaces you are using. You can do it in plain sql like this:

SQL> with t as (

   2 select xmltype('<?xml version="1.0" encoding="ISO-8859-1"?>    3 <?xml-stylesheet type="text/xsl" href="../oper_fct.xsl"?>    4 <test abc:thisone="O1" xmlns="abc" xmlns:abc="abc"    5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    6 xsi:schemaLocation="abc ../abc_abc.xsd">    7 <blaa>

   8      ABCABC
   9     </blaa>

  10 </test>') x from dual)
  11 select extractvalue(x,'//_at_abc:thisone','xmlns:abc="abc"') attr   12 from t
  13 ;

ATTR



O1

If your program logic requires the use of xlsprocessor.valueof , then you should specify your namespaces in that call as well ( it accepts a namespace parameter).

Best regards

Maxim Received on Sat Mar 07 2009 - 12:04:28 CET

Original text of this message