PB创建和解析XML方案

示例XML文档

本文将以下面的XML文档为例,演示在PB12.5中构建与解析XML文档:

<?xml version="1.0"?>
<bookstore>
	<book id="1">
		<name>冰与火之歌</name>
		<author>乔治马丁</author>
		<year>2014</year>
		<price>89</price>
	</book>
	<book id="2">
		<name>安徒生童话</name>
		<year>2004</year>
		<price>77</price>
		<language>English</language>
	</book>
</bookstore>

创建XML

pugixmldoc doc
pugixmlnode node_bookstore
pugixmlnode node_book
string ls_xml

doc = create pugixmldoc

node_bookstore = doc.add_child('bookstore')

node_book = node_bookstore.add_child('book')

node_book.set_attribute( 'id', '1')
node_book.add_child( 'name', '冰与火之歌')
node_book.add_child( 'author', '乔治马丁')
node_book.add_child( 'year', '2014')
node_book.add_child( 'price', '89')


node_book = node_bookstore.add_child('book')

node_book.set_attribute( 'id', '2')
node_book.add_child( 'name', '安徒生童话')
node_book.add_child( 'year', '2004')
node_book.add_child( 'price', '77')
node_book.add_child( 'language', 'English')

ls_xml = doc.stringify( )
return 0

代码运行效果如下:
在这里插入图片描述

解析XML

string ls_xml
pugixmldoc doc
pugixmlnode node_books[]
st_book book1, book2

ls_xml = '<?xml version="1.0"?>' +&
			'<bookstore>' +&
			'	<book id="1">' +&
			'		<name>冰与火之歌</name>' +&
			'		<author>乔治马丁</author>' +&
			'		<year>2014</year>' +&
			'		<price>89</price>' +&
			'	</book>' +&
			'	<book id="2">' +&
			'		<name>安徒生童话</name>' +&
			'		<year>2004</year>' +&
			'		<price>77</price>' +&
			'		<language>English</language>' +&
			'	</book>' +&
			'</bookstore>'

doc = create pugixmldoc
doc.parse( ls_xml)

doc.select_nodes( '/bookstore/book', node_books)
book1.id = node_books[1].get_attribute( 'id')
book1.name = node_books[1].get_child( 'name').get_value()
book1.author = node_books[1].get_child( 'author').get_value()
book1.year = node_books[1].get_child( 'year').get_value()
book1.price = node_books[1].get_child( 'price').get_value()

book2.id = node_books[2].get_attribute( 'id')
book2.name = node_books[2].get_child( 'name').get_value()
book2.year = node_books[2].get_child( 'year').get_value()
book2.price = node_books[2].get_child( 'price').get_value()
book2.language = node_books[2].get_child( 'language').get_value()

return 0

代码运行效果如下:
在这里插入图片描述

方法说明

该方案基于pugixml项目通过PBNI封装,功能使用上类似pugixml,主要有如下方法:

方法名功能说明
add_child添加子节点
get_attribute获取属性值
ge_child获取子节点
get_children获取子节点数组
get_value获取当前节点的值
parse解析XML文档
select_node按XPATH表达式获取节点
select_nodes按XPATH表达式获取节点数组
set_attribute设置属性值
set_value设置当前节点的值
stringify输出XML文档

项目下载

使用过程中出现问题请反馈作者:
QQ:768310524
TEL、WX:18649713925

PowerXML.dll

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值