繁体   English   中英

VB.Net XML解析问题

[英]VB.Net XML Parsing Issue

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

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

“ <form name =” SupportRepID“> 1234 </ form>

<form name =“ SupportRepName”>约翰·史密斯</ form>

<form name =“ SupportRepKey”> XXXXX-XXXXX-XXXXX-XXXXX-XXXXX </ form>

<form name =“ DepartmentID”> 1 </ form>

<form name =“ DepartmentName”>常规</ form>

<form name =“ DepartmentCurrency”> $ </ form>“

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

我认为问题出在<details>下的每个名称都没有归类为Element。 当我运行这样的代码以尝试获取“ 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

如果我以此方式运行它(用于故障排除,以确保从dataStream中提取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

它在一个长字符串中返回每个<表单名称=“”>旁边的所有值:“ 1234JohnSmithXXXXX-XXXXX-XXXXX-XXXXX-XXXXX1General $”

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

我认为这与<details>形式为name =“”下的对象有关,但是过去两天我到处都在寻找,没有帮助。 也许我不是在搜索正确的术语,但是我喜欢这个网站。 每个人总是很乐于助人,所以我想我会碰碰运气的。 谢谢!

属性是您需要的,不能完全确定对代码的更改是什么,但是查看属性的更改将允许您提取此数据。

detail.Element( “形式”)。属性( “名称”)

您想要的元素是“表单”,其属性为 “名称”,其值为“ SupportRepKey”。

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

detail.Element("SupportRepKey")

但这不存在,因为元素名称为“ form”。 “ SupportRepKey”只是名为“ name”的属性的值。

如何使用XPath?

C#:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM