.net - Parsing XML using XmlDocument -
i trying parse below xml. have multiple invoice tags:
<invoices> <invoice> <invoice_id>1234</invoice_id> <billing> <name> abc </name> <address1>1 main street</address1> <city> city </city> <state>state </state <zip>00000</zip> <amount> <baseamt>35</baseamt> <tax>3</tax> <total>28<total> <amount> </billing> <item> <name> pen </name> <qty> 5 </qty> <amount> 10 </amount> </item> <item> <name> paper </name> <qty> 3 </qty> <amount> 20 </amount> </item> </invoice> </invoices>
below code :
dim xmldoc xmldocument = new xmldocument() xmldoc.load(filename) dim invnum integer = 0 dim nodelst xmlnodelist = xmldoc.selectnodes("/invoices/invoice") invnum = nodelst.count each invdetail xmlelement in nodelst dim invid string = invdetail("invoice_id").innertext.tostring() next
i need value remaining tags i.e child nodes billing/name , billing/name/amount , items/items/name
if accessing value of direct-child element, invoice_id
, can use indexer access child element name, doing, this:
invdetail("invoice_id")
however, if want go deeper value of lower descendant, can use selectsinglenode
or selectnodes
access node via xpath. xpath relative current node. instance:
for each invdetail xmlelement in nodelst dim invid string = invdetail("invoice_id").innertext dim name string = invdetail.selectsinglenode("billing/name").innertext ' etc. each item xmlelement in invdetail.selectnodes("item") dim itemname string = item("name").innertext ' etc. next next
Comments
Post a Comment