oracle数据库报文作用,plsql解析xml报文问题

请教以下问题,谢谢!

以下两个程序输入报文为

false

false

1. 输入参数为varchar类型,代码如下。长度input_list_n,能够计算出来为1,但是取不出p_id的值,值为null,为什么?

create or replace procedure P_XMLTEST3(in_param in varchar, out_param out varchar)

IS

parser xmlparser.parser;

xmldoc xmldom.DOMDocument;

nodelist xmldom.domnodelist;

tempnode xmldom.domnode;

v_attr_name varchar2(500);

v_attr_val varchar2(500);

p_id varchar2(255);

input_list_n integer;

begin

parser := xmlparser.newParser;

xmlparser.setValidationMode(parser, TRUE);

xmlparser.parseBuffer(parser,in_param);

xmldoc := xmlparser.getDocument(parser);

xmlparser.freeParser(parser);

nodelist := xslprocessor.selectNodes(xmldom.makeNode(xmldoc),'/config');

tempnode := xmldom.item(nodelist, 0);

input_list_n:=xmldom.getLength(nodelist);

xslprocessor.valueOf(tempnode,'ID/text()',p_id);

dbms_output.put_line(p_id);

dbms_output.put_line(input_list_n);

end;

2. 输入参数为clob类型,在测试调试执行xmlparser.ParseCLOB(parser, in_param )时提示输入的列值为null,但是已经在测试的输入参数里输入以上报文,为什么?

create or replace procedure P_XMLTEST2(in_param in clob, out_param out varchar)

IS

parser xmlparser.parser;

xmldoc xmldom.DOMDocument;

nodelist xmldom.domnodelist;

tempnode xmldom.domnode;

v_attr_name varchar2(500);

v_attr_val varchar2(500);

p_id varchar2(255);

begin

parser := xmlparser.newParser;

xmlparser.ParseCLOB(parser, in_param );

xmldoc := xmlparser.getDocument(parser);

xmlparser.freeParser(parser);

nodelist := xslprocessor.selectNodes(xmldom.makeNode(xmldoc),'/config');

tempnode := xmldom.item(nodelist, 0);

xslprocessor.valueOf(tempnode,'ID/text()',p_id);

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值