PowerBuilder9.0 如何使用PBDOM读取XML文件,并将其显示在TreeView中
4条回答 默认 最新
- oyljerry 2015-07-16 09:32关注
OLEObject lobj_dom OLEObject lole_domnodelist,lole_domcurnode string as_xml,ls_nodevalue,ls_nodename long ll_catalog,ll_activities,ll_activity integer li_return boolean lb_return string ls_id, ls_author, ls_title, ls_genre, ls_price, ls_publish_date, ls_description lobj_dom = CREATE OLEObject li_return = lobj_dom.ConnectToNewObject ("Msxml2.DOMDocument.3.0") IF li_return <> 0 THEN MessageBox ("Connection Error", "Unable to connect to the OLE object.~r~n~r~nError code = '" + String(li_return) + "'", Exclamation!, OK!) Return END IF lobj_dom.Async = FALSE lobj_dom.ValidateonParse = TRUE lb_return = lobj_dom.loadxml(as_xml) If lobj_dom.parseError.ErrorCode <> 0 then Messagebox('',string( lobj_dom.parseError.reason )) return end if lole_domnodelist = lobj_dom.getElementsByTagName("catalog") lole_domcurnode = lole_domnodelist.nextNode // Solution 1 /* for ll_catalog = 0 to lole_domcurnode.childNodes.Length -1 ls_id = lole_domcurnode.childNodes(ll_catalog).getattribute("id") ls_author = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(0).text ls_title = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(1).text ls_genre = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(2).text ls_price = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(3).text ls_publish_date = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(4).text ls_description = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(5).text Messagebox(string(ll_catalog),ls_id + '~r~n' + ls_author + '~r~n' + ls_title + '~r~n' + ls_genre + '~r~n' + ls_price + '~r~n' + ls_publish_date + '~r~n' + ls_description) Next */ // Solution 2 for ll_catalog = 0 to lole_domcurnode.childNodes.Length -1 ls_id = lole_domcurnode.childNodes(ll_catalog).getattribute("id") ll_activities = lole_domcurnode.childNodes(ll_catalog).childNodes.length - 1 For ll_activity = 0 to ll_activities ls_nodename = lole_domcurnode.childNodes(ll_catalog).childnodes.Item(ll_activity).nodeName ls_nodevalue = lole_domcurnode.childNodes(ll_catalog).childNodes.Item(ll_activity).text Choose Case ls_nodename Case 'author' ls_author = ls_nodevalue Case 'title' ls_title = ls_nodevalue Case 'genre' ls_genre = ls_nodevalue Case 'price' ls_price = ls_nodevalue Case 'publish_date' ls_publish_date = ls_nodevalue Case 'description' ls_description = ls_nodevalue End Choose Next Messagebox(string(ll_catalog),ls_id + '~r~n' + ls_author + '~r~n' + ls_title + '~r~n' + ls_genre + '~r~n' + ls_price + '~r~n' + ls_publish_date + '~r~n' + ls_description) Next
解决 无用评论 打赏 举报