-1

我有从 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,但可以收集 30 个中的 20 个。我需要按顺序收集它们,以便我可以对这些 id 进行进一步处理。

我已经考虑过为此使用 xml 阅读器,但这可能需要我先将结果保存到文件中,然后再将其读入然后进行处理。我也一直想知道是否有一种方法可以针对文本框的内容编写 linq 查询,因为它是正确格式化的 xml。

我怀疑有一种非常有效的方法可以做到这一点,结果证明它非常简单,所以为此我想我想问一下你们中是否有人有一些好主意。

谢谢。

4

1 回答 1

0
Dim abc As XElement = XElement.Parse(yourStringOrYourControlContent)
For Each id As String in abc.<salesnote>.@id
  Console.WriteLine(id)
Next

应该做。

于 2013-06-25T11:48:38.920 回答