如何使用 ORACLE 从 XML 解析属性值

祖拉布-D

在这里,我有一个从 XML 中提取费率的代码:

with tbl as
(
    select
        XMLType(
        '<exchange_rates>
            <rate units="1" code="AUD">2.6</rate>
            <rate units="1" code="THB">0.1</rate>
            <rate units="1" code="BRL">0.9</rate>
            <rate units="1" code="BGN">2.2</rate>
            <rate units="1" code="CAD">2.9</rate>
            <rate units="100" code="CLP">0.5</rate>
        </exchange_rates>'
        ) xml
    from
        t_temp
)
select
    extractValue(value(t), 'rate') result
from
    tbl t,
    table(XMLSequence(t.xml.extract('//rate'))) t;

这段代码的结果是

RESULT
------
2.6
0.9
2.2
2.9
0.5

没关系,但我还想获得属性值并获得如下结果:

Units Code RESULT
----- ---- ------
    1 AUD  2.6
    1 BRL  0.9
    1 BGN  2.2
    1 CAD  2.9
  100 CLP  0.5

有没有办法做到这一点?

马修·麦克皮克

Oracle 的 XML 函数采用 XPath 表达式,因此您可以使用@attributename语法来标识属性。此外,您可以使用该XMLTABLE功能使结构更简单/更清晰。

with tbl as
(
    select
        XMLType(
        '<exchange_rates>
            <rate units="1" code="AUD">2.6</rate>
            <rate units="1" code="THB">0.1</rate>
            <rate units="1" code="BRL">0.9</rate>
            <rate units="1" code="BGN">2.2</rate>
            <rate units="1" code="CAD">2.9</rate>
            <rate units="100" code="CLP">0.5</rate>
        </exchange_rates>'
        ) xmldata
    from
        dual
)
select units, code, rate
from   tbl,
       xmltable('/exchange_rates/rate' 
                      PASSING tbl.xmldata 
                      COLUMNS rate NUMBER PATH '.', 
                              code VARCHAR2(3) PATH './@code', 
                              units NUMBER PATH './@units');
+-------+------+------+
| UNITS | CODE | RATE |
+-------+------+------+
|     1 | AUD  |  2.6 |
|     1 | THB  |  0.1 |
|     1 | BRL  |  0.9 |
|     1 | BGN  |  2.2 |
|     1 | CAD  |  2.9 |
|   100 | CLP  |  0.5 |
+-------+------+------+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PHP解析XML以获取属性值?

来自分类Dev

使用PowerShell解析XML:使用属性获取元素的值

来自分类Dev

JAVA使用stax解析器从xml获取属性值

来自分类Dev

使用Spring批处理根据属性值解析xml片段

来自分类Dev

如何在 Oracle 中解析 xml 数组

来自分类Dev

如何使用MS SQL解析XML属性

来自分类Dev

如何使用Java DOM解析器查找Node属性值并以XML删除它

来自分类Dev

Oracle嵌套xml解析

来自分类Dev

使用NSXMLParser解析xml属性

来自分类Dev

如何使用xmlstarlet从xml打印属性值?

来自分类Dev

如何使用C从Xml获取属性值

来自分类Dev

使用TSQL和XQuery解析XML-获取给定元素值的属性值

来自分类Dev

如何从oracle生成xml

来自分类Dev

如何在Oracle中按xmltype解析XML

来自分类Dev

如何使用 Oracle XMLTABLE 从 XML 返回列

来自分类Dev

从Oracle数据库中的XML属性查询时如何使用XPath表达式

来自分类Dev

如何使用xml-rs获取xml中的属性值?

来自分类Dev

如何从DOM解析XML中的空元素中提取属性值?

来自分类Dev

如何在Android中解析xml文件中标记值的属性

来自分类Dev

如何解析通过Lua多次出现的xml文件的特定标签的属性值?

来自分类Dev

xml2js解析-如何提取元数据属性值?

来自分类Dev

尝试使用dom4j解析XML时,属性值为null

来自分类Dev

如何使用Oracle SQL查询选择XML中的特定节点名称及其值?

来自分类Dev

如何获取xml属性值

来自分类Dev

如何清理XML属性值

来自分类Dev

如何在 Oracle 查询中从 XML 字段中选择值

来自分类Dev

如何使用C#解析XML链接标签href属性

来自分类Dev

使用Linq to Xml获取Xml属性的值

来自分类Dev

如何使用 JDOM 从 XML 获取属性值的值

Related 相关文章

热门标签

归档