我对xml解析很陌生。我正在尝试使用VB.net解析以下XML
我已经读了很多书了,但我做得不对
我完全糊涂了
...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by SMExport 4.99-->
<RECORDS>
<METADATA>
<FIELDS>
<FIELD attrname="LAYBYE" fieldtype="i4"/>
<FIELD attrname="TITLE" fieldtype="string" WIDTH="5"/>
<FIELD attrname="INITS" fieldtype="string" WIDTH="7"/>
<FIELD attrname="SURNAME" fieldtype="string" WIDTH="31"/>
<FIELD attrname="COMPANYNAME" fieldtype="string" WIDTH="6"/>
<FIELD attrname="EXPDATE" fieldtype="date"/>
<FIELD attrname="BALANCE" fieldtype="r8" SUBTYPE="Money"/>
<FIELD attrname="IDNUMBER" fieldtype="string" WIDTH="16"/>
<FIELD attrname="Cellphone" fieldtype="string" WIDTH="21"/>
</FIELDS>
<PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="1033"/>
</METADATA>
<RECORD>
<ROW
LAYBYE="1"
TITLE="MR"
INITS="J"
SURNAME="DOE"
EXPDATE="20190523"
BALANCE="100"
IDNUMBER="123"
Cellphone="99999999"
/>
</RECORD>
<RECORD>
<ROW
LAYBYE="1"
TITLE="MRS"
INITS="JJ"
SURNAME="DOE"
EXPDATE="20190701"
BALANCE="500"
IDNUMBER="456"
Cellphone="888888"
/>
</RECORD>
</RECORDS>
...
我期望把以下输出输出到Gridview连LAYBYE的标题在其姓EXPDATE的平衡的IDNUMBER中::JJ女士- DOE
X=
我设法把CSV送到GRIDVIEW
发布于 2022-10-13 06:51:15
没有更多的细节,以下只是一个猜测。你会想读到XElement的。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myXML As XElement
' to load from uri
'myXML = XElement.Load("path goes here") '<<<<<<<<<
'for testing use literal
' note that the <?xml version ... statement is NOT used in literals
myXML = <RECORDS>
<METADATA>
<FIELDS>
<FIELD attrname="LAYBYE" fieldtype="i4"/>
<FIELD attrname="TITLE" fieldtype="string" WIDTH="5"/>
<FIELD attrname="INITS" fieldtype="string" WIDTH="7"/>
<FIELD attrname="SURNAME" fieldtype="string" WIDTH="31"/>
<FIELD attrname="COMPANYNAME" fieldtype="string" WIDTH="6"/>
<FIELD attrname="EXPDATE" fieldtype="date"/>
<FIELD attrname="BALANCE" fieldtype="r8" SUBTYPE="Money"/>
<FIELD attrname="IDNUMBER" fieldtype="string" WIDTH="16"/>
<FIELD attrname="Cellphone" fieldtype="string" WIDTH="21"/>
</FIELDS>
<PARAMS DEFAULT_ORDER="1" PRIMARY_KEY="1" LCID="1033"/>
</METADATA>
<RECORD>
<ROW
LAYBYE="1"
TITLE="MR"
INITS="J"
SURNAME="DOE"
COMPANYNAME="BAWAS"
EXPDATE="20190523"
BALANCE="100"
IDNUMBER="123"
Cellphone="99999999"
/>
</RECORD>
</RECORDS>
'get all FIELD
Dim ie As IEnumerable(Of XElement)
'this assumes FIELD tags are in only one place
ie = From el In myXML...<FIELD> Select el
'example - look at attrname
For Each el As XElement In ie
Debug.WriteLine(el.@attrname)
Next
'get specific FIELD
ie = From el In myXML...<FIELD>
Where el.@fieldtype = "string"
Select el Order By Integer.Parse(el.@WIDTH)
'show width
For Each el As XElement In ie
Debug.Write(el.@attrname & " ")
Debug.WriteLine(el.@WIDTH)
Next
ie = From anEL In myXML.<RECORD>.<ROW>
Select anEL
For Each foo As XElement In ie
Debug.WriteLine(foo.ToString)
Next
End Sub
https://stackoverflow.com/questions/74054999
复制