VB.Net XML 解析问题

VB.Net XML Parsing Issue

我在将某些 XML 信息解析到 richtextbox 时遇到一些困难。我正在从流中提取一个 XML 文件并且数据成功通过,但是当我尝试查看元素时我认为存在问题。

这是加载后的流的片段(每个表单名称旁边通常有值)

"<表单名称="SupportRepID">1234

<表格名称="SupportRepName">约翰·史密斯< /form>

<表单名称="SupportRepKey">XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

<表格名称="DepartmentID">1

<表单名称="DepartmentName">一般< /form>

<表格名称="DepartmentCurrency">$

我的最终目标是能够获取 SupportRepKey 和 SupportRepName。

我认为问题在于 < details > 下的每个名称都没有被归类为元素。当我 运行 这样的代码尝试获取 "SupportRepKey" 的值时,消息框将显示空值(空白)。

Dim reader As XDocument = XDocument.Load(dataStream)



    For Each detail As XElement In reader...<details>
        Dim APIKey As String = detail.Element("SupportRepKey")
        MessageBox.Show(APIKey) 'returns null value
    Next

如果我 运行 使用它(用于故障排除以确保 XML 文件是从数据流中提取的):

 Dim reader As XDocument = XDocument.Load(dataStream)

    For Each detail As XElement In reader...<details>
        MessageBox.Show(detail.Value) 'returns all values in one long string
    Next

它 returns 一个长字符串中每个

旁边的所有值:"1234JohnSmithXXXXX-XXXXX-XXXXX-XXXXX-XXXXX1General$"

我正在使用 API 与我工作的系统交互。 RepName 和 RepKey 是在有人输入他们的登录信息时生成的,每个代表都有一个单独的密钥。我需要能够抓住这两件事并将它们设置为变量或文本字段中的文本,以便我可以进一步与每个用户 API 进行交互。

我觉得和

下的对象是form name=""有关系,不过这两天到处找也没有用。也许我不是在寻找合适的术语,但我喜欢这个网站。每个人总是那么乐于助人,所以我想我会试试运气。谢谢!

属性是您所追求的,不完全确定您的代码会发生什么变化,但改变查看属性将允许您提取此数据。

detail.Element("form").属性("name")

你想要的 Element 是 "form",它有一个 Attribute "name",其值为 "SupportRepKey".

您正在做的是:找到元素 "SupportRepKey"。

detail.Element("SupportRepKey")

但这不存在,因为元素名称是 "form"。 "SupportRepKey" 只是名为 "name".

的属性的值

使用 XPath 怎么样?

C#:

string repKey = reader.XPathSelectElement("//form[@name='SupportRepKey']").Value;