我从wcf服务返回数据(以字符串的形式),类似于下面的内容。
<?xml version="1.0" encoding="UTF-8"?>
<abc uname="xxxxxxx" pword="xxxxxxxx" doctype="RET" status="ACK" errorcode="0">
<salesnote sntype="B" action="INSERT" salescontractref="" saledate="20121114" auctionid="" logbooknums="" landingdecnums="" vesselname="Titanic" vesselpln="ABC123" vesselmasterowner="Michael Mouse" landingdate1="20121112" landingdate2="" landingdate3="" countryoflanding="GBR" landingportcode="GBHTG" status="ACK" errorcode="E302 [Sales line(s)]" id="25005">
<salesline speciescode="NEP" faoareacode="27" zonecode="" disposalcode="" freshnesscode="U" sizecode="3" presentationcode="HEA" statecode="FRE" numberoffish="" weightkgs="52.00" value="15.00" currencycode="GBP" withdrawndestinationcode="" buyerreg="" salescontractref="" status="ACK" errorcode="E302 [Invalid species cross reference codes used]" />
</salesnote>
</abc>
实际上会有更多'salesnote'元素及其相应的'salesline'元素,它们应该没有错误!!
我目前正在向wcf服务提交数据并收集返回信息(上面的一个例子)到富文本框。从这个返回,我希望提取每个'salesnote'元素的最后一个属性(“id”)中包含的信息。在这种情况下,它只是25005,但可能有二十三个收集。我需要按顺序收集它们,以便我可以使用这些id进行进一步处理。
我考虑过使用xml阅读器,但这可能要求我先将结果保存到文件中,然后再将其读入并继续处理。我也一直想知道是否有一种方法可以对文本框的内容编写linq查询,因为它是格式正确的xml。
我怀疑有一种非常有效的方法可以做到这一点,结果很简单,所以为什么我会问你们是否有一些好主意。
感谢。
答案 0 :(得分:0)
Dim abc As XElement = XElement.Parse(yourStringOrYourControlContent)
For Each id As String in abc.<salesnote>.@id
Console.WriteLine(id)
Next
应该这样做。