Re: XML namespace problem
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