oracle 获取xml某个节点的值

oracle 获取xml某个节点的值,第1张

用XPath比较简单点也可以用xmldom

xmltype('<xml version="10" encoding="gbk">

<SERVICE>

<IDA_SVR_USERBILL>

<CALL_METHOD>queryProcessStepList</CALL_METHOD>

</IDA_SVR_USERBILL>

</SERVICE>')extract('//CALL_METHOD/child::text()')getstringval()

测试:

SELECT xmltype('<xml version="10" encoding="gbk">

<SERVICE>

<IDA_SVR_USERBILL>

<CALL_METHOD>queryProcessStepList</CALL_METHOD>

</IDA_SVR_USERBILL>

</SERVICE>')extract('//CALL_METHOD/child::text()')getstringval()

from dual;

没把结果转为二维数组,我把节点放到arraylist里了,里面的每个项都是一个一维数组,其中第一个元素是data的属性,后面存放的是节点的子节点的内容。Dim

xmlreader

As

XmlReader

=

XmlReaderCreate("xmlxml")

Dim

alst

As

SystemCollectionsArrayList

=

New

SystemCollectionsArrayList()

Dim

a()

As

String

=

Nothing

Dim

i

As

Integer

=

0

While

(xmlreaderRead())

If

(xmlreaderNodeType

=

XmlNodeTypeElement)

Then

Select

Case

(xmlreaderLocalName)

Case

"data":

If

(a

<>

Nothing)

Then

alstAdd(a)

Redim

a(9)

i

=

0

xmlreaderMoveToFirstAttribute()

a(i)

=

xmlreaderValue

i

+=

1

Case

"cloudcover",

"seeing",

"transparency",

"lifted_index",

"rh2m",

"wind10m_direction",

"wind10m_speed",

"temp2m",

"prec_type":

a(i)

=

xmlreaderReadString

i

+=

1

End

Select

End

If

Wend

alstAdd(a)

xmlreaderClose() 其实你这个文件用xmldoucment *** 作方便,为什么要用xmlreader呢?

代码如下:

import javaxxmlparsersDocumentBuilder;

import javaxxmlparsersDocumentBuilderFactory;

import orgw3cdomDocument;

import orgw3cdomElement;

import orgw3cdomNodeList;

public class FileTest {

/

@param args

/

public static void main(String[] args) {

DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();

try {

DocumentBuilder db = dbfnewDocumentBuilder();

Document doc = dbparse("d:/testxml");

//得到根节点

Element root = docgetDocumentElement();

NodeList nl = rootgetElementsByTagName("id");

Element e = (Element) nlitem(0);

String id=egetTextContent();

Systemoutprintln("id的值为:"+id);

}catch(Exception e){

eprintStackTrace();

}

}

}

上面的代码中我把

<message msgType="response" msgId="String" timestampCreated="2010-5-13 15:55:54" version="String">

<response>

<code>0</code>

<description>成功</description>

</response>

<body bodyId="1">

<id>11223344</id>

</body>

</message>

这段内容放到了D盘下的testxml文件中

你如果要用可以直接将得到的给字符串加载成Document对象,就可以取到了。

以上就是关于oracle 获取xml某个节点的值全部的内容,包括:oracle 获取xml某个节点的值、急 VB.NET中用XmlReader读取XML文件的指定节点 在线等、java 从XML中取出某个节点的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9624216.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存