示例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