在IBM i (OS/400)上如何使用RPG处理XML
作者:佚名
上传时间:2023-04-17
运行软件:ILE RPG
软件版本:IBM i 7.4
版权申诉
此示例代码展示了如何使用RPG在IBM i (OS/400)上处理XML。具体来说,该程序使用ILE RPG中的XML-INTO操作读取XML文件,并使用数据结构对数据进行解析。此功能可用于可扩展标记语言(XML)文件的读取和解析,使其成为数据交换的强大格式。
**FREE
/include qsysinc/qrpglesrc,xml
/include qsysinc/qrpglesrc,xmlparse
dcl-ds CustomerTemplate qualified;
CustNo char(5);
FirstName char(15);
LastName char(15);
end-ds;
dcl-ds CustomersTemplate qualified;
Customer count(9999) qualified;
end-ds;
dcl-pr ProcessXMLTemplate;
filename char(255) const;
end-pr;
dcl-pi ProcessXMLTemplate;
filename char(255) const;
end-pi;
dcl-s LineNum int(10);
dcl-s Text char(2048);
dcl-ds xmlDoc likeds(XML_DOC);
dcl-ds xmlDoms likeds(XML_SAX_RT_DOM);
exec sql set option datfmt=*ISO;
LineNum = 0;
xmlDoc.xmldoc = XML_Create_DOM(handler => 'domHandler');
if xmlDoc.xmldoc = *null;
exsr cleanup;
return;
endif;
Text = ' ';
exec sql declare cur cursor for
select text from myfile order by seq_no;
exec sql open cur;
exec sql fetch cur into :Text;
dow (sqlstate = '00000');
LineNum = lineNum + 1;
xmlParse(Text);
Text = ' ';
exec sql fetch cur into :Text;
enddo;
exec sql close cur;
if SQLCODE <> 0;
exsr cleanup;
return;
endif;
//* Process any remaining data
xmlParse('');
xmlDoc.xmldoc.XML_free_document();
return;
begsr domHandler;
dcl-ds xmlData qualified;
CustNo char(5);
FirstName char(15);
LastName char(15);
end-ds;
dcl-ds dsXMLData likeds(xmlData);
xmlLoad();
if xmlDoms.saxrt.app_values.element_name = 'Customers';
CustomersTemplate = dsXMLData.customer;
eval_line(cl:'Customer:',cn:CustomersTemplate.ds_pos);
endif;
if xmlDoms.saxrt.app_values.element_name = 'Customer';
xmlData = %addr(CustomerTemplate);
CustomerTemplate = dsXMLData;
eval_line(cl:' Cust#:':CustNo);
eval_line(cl:'First name:':FirstName);
eval_line(cl:' Last name:':LastName);
endif;
endsr;
begsr eval_line;
dcl-pi *n;
cl char(100);
cn int(10);
end-pi;
dcl-ds lineData likeds(XML_PCDATA);
lineData = cl;
XML_Into(value => %addr(lineData),
vlen => %size(lineData),
target=> %addr(Text),
tvary => *on);
if lineData.PCDATA <> ' ' and cn <> *zeros;
// 打印到控制台
dsply %trimR(lineData.PCDATA);
endif;
endsr;
begsr xmlParse;
dcl-pi *n;
XMLText char(2048) const;
end-pi;
dcl-s XMLTextLength int(10) based(%size(XMLText));
XMLTextLength = %len(%trimR(XMLText));
XML_Parse(xmlDoc.xmldoc:%addr(XMLText):XMLTextLength:0);
return;
endsr;
begsr cleanup;
if xmlDoc.xmldoc <> *null;
xmlDoc.xmldoc.XML_free_document();
endif;
return;
endsr;
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
在IBM i (OS/400)上如何使用RPG处理XML
此示例代码展示了如何使用RPG在IBM i (OS/400)上处理XML。具体来说,该程序使用ILE RPG中的XML-INTO操作读取XML文件,并使用数据结构对数据进行解析。此功能可用于可扩展标记
IBM i 7.4
ILE RPG
2023-04-17 09:12
在IBM i (OS/400)上使用RPG编程语言(IBM i (OS/400))
IBM i (OS/400)是一种流行的操作系统,广泛用于企业级应用程序的开发和部署。其中,RPG编程语言是一种高级编程语言,适用于开发企业级应用程序。本文将介绍在IBM i (OS/400)上使用R
IBM i (OS/400) V7R4,Rational Developer for i 9.6
Rational Developer for i
2023-04-03 04:01
在IBM i(OS/400)上使用RPG编写XML文档生成程序
该示例代码展示了如何在IBM i(OS/400)上使用RPG编写XML文档生成程序。通过使用IBM i(OS/400)自带的XML Toolkit,程序可以生成一个符合XML规范的文档,并将其保存在I
IBM i(OS/400) V7R3
RPG IV
2023-04-29 02:01
在 IBM i (OS/400) 上如何使用 SQL 调用 RPG 程序
本例中展示了如何使用在IBM i系统上使用SQL语句调用RPG程序。RPG程序将被传递变量后,将输出被返回到SQL查询的结果集中。CREATE FUNCTION MY_RPG_FUNCTION (I
IBM i 7.4
IBM RPG编译器
2023-05-24 11:52
在IBM i(OS / 400)上使用RPG编写RESTful服务
本示例使用IBM i(OS / 400)上的RPG编写RESTful服务,实现了读取和写入数据的功能。该RESTful服务使用JSON作为数据格式,并可以通过HTTP请求进行访问。/free
IBM i 7.2
IBM RPG IV
2023-04-15 13:52
在IBM i(OS/400)上使用RPG编写REST API
本示例展示了如何在IBM i (OS/400)上使用RPG编写REST API。这个示例将使用IBMi的集成web服务来处理REST请求和响应,并使用IREST(IBM的RPG扩展,用于处理REST)
IBM i (OS/400) V7R2M0
IBM Rational Developer for i (RDi)
2023-04-12 19:15
在IBM i (OS/400)上使用RPG制作RESTful API
这是一篇介绍如何在IBM i (OS/400)上使用RPG制作RESTful API的文章,其中包含示例代码以及解释。dcl-pr MyApp get export;
IBM i (OS/400) V7R4M0
RPG语言
2023-04-30 16:04
如何在IBM i (OS/400)上运行RPG程序
本文将介绍如何在IBM i (OS/400) 操作系统上运行RPG程序,同时提供一些示例代码和代码释义,以及总结。示例代码以下是一个简单的RPG程序示例: FMyFile IF
7.3
IBM i Access Client Solutions
2023-04-10 00:14
在IBM i (OS/400)上使用Python调用RPG IV程序
本示例展示了如何在IBM i (OS/400)操作系统上使用Python编程语言调用RPG IV程序。Python是一种流行的高级编程语言,它与IBM i系统平台兼容。RPG IV是一种程序设计语言,
Python 3.7.2, IBM i (OS/400) 7.3
IBM i Access Client Solutions
2023-04-27 04:02
如何在IBM i (OS/400)上使用Python处理XML文件
本文介绍如何使用Python在IBM i (OS/400)上处理XML文件。实现方式是安装Python并使用ElementTree库,示例代码会读取一个XML文件并打印出其中的某些元素的值。# 导入
IBM i (OS/400) V7R3
Python 3.6.4 on IBM i (OS/400)
2023-04-01 15:45