![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
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, '@abc:thisone') ... and I've tried ... xlsprocessor.valueof(l_node, '@thisone') ... What is the right way to get it ??? Any help would be appreciated, BR, Timo |
#3
| |||
| |||
|
|
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, '@abc:thisone') ... and I've tried ... xlsprocessor.valueof(l_node, '@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,'//@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 |
#4
| |||
| |||
|
|
Hi Maxim, thanks; your solution works, great ! Still I should read with "xlsprocessor.valueof" and still I haven't found a way to define namespace to it in PL/SQL; should it be like ... xlsprocessor.valueof(l_node,'@thisone','abc') or xlsprocessor.valueof(l_node,'@abc:thisone','abc') or xlsprocessor.valueof(l_node,'@thisone','xmlns=abc= "abc"') or what....??? If you've got an anwer for this please do let me know it , BR, Timo |
![]() |
| Thread Tools | |
| Display Modes | |
| |