Vb.net 将文本与XML值进行比较
我正在尝试让应用程序执行以下操作:Vb.net 将文本与XML值进行比较,vb.net,Vb.net,我正在尝试让应用程序执行以下操作: 如果Combobox1文本与.XML中的相同,则在文本框中输入“它们匹配” 这就是我正在尝试的代码 Dim DocList As String = "C:\Users\jefhill\Desktop" Dim Name1 As String Dim Name2 As String Name1 = (XElement.Load(DocList + "\parts.xml").<Name1>.Single) Name2
如果Combobox1文本与.XML中的
相同,则在文本框中输入“它们匹配”
这就是我正在尝试的代码
Dim DocList As String = "C:\Users\jefhill\Desktop"
Dim Name1 As String
Dim Name2 As String
Name1 = (XElement.Load(DocList + "\parts.xml").<Name1>.Single)
Name2 = (XElement.Load(DocList + "\parts.xml").<Name2>.Single)
If ComboBox1.Text = Name1 Then
DesTextBox.Text = (XElement.Load(DocList + "\parts.xml").<Des1>.Single)
ElseIf ComboBox1.Text = Name2 Then
DesTextBox.Text = (XElement.Load(DocList + "\parts.xml").<Des2>.Single)
'ect
Dim DocList As String=“C:\Users\jefhill\Desktop”
Dim Name1作为字符串
Dim NAME 2作为字符串
Name1=(XElement.Load(DocList+“\parts.xml”)…单个)
Name2=(XElement.Load(DocList+“\parts.xml”)…单个)
如果ComboBox1.Text=Name1,则
DesTextBox.Text=(XElement.Load(DocList+“\parts.xml”)…单个)
ElseIf ComboBox1.Text=Name2然后
DesTextBox.Text=(XElement.Load(DocList+“\parts.xml”)…单个)
“ect
XML文档示例:
<Name1>Words</Name1>
<Name2>More Words</Name2>
单词
更多的话
编辑:忘记提到错误
序列不包含任何元素
错误
序列不包含任何元素
源于在未找到匹配元素时调用.Single()
,这意味着您要查询的一个或多个元素名称在XML文档中丢失。因为您提供的XML不完整,所以我无法判断是哪一种。这可能是一个简单的打字错误
代码中还有几个其他问题。我建议对使用选项,以避免出现这些问题
您应该只加载XML文档一次:
Dim xml As XElement = XElement.Load(DocList + "\parts.xml")
您应该使用.Value
获取元素的字符串值,因为.Single()
将返回XElement
:
Dim Name1 As String = xml.<Name1>.Single().Value
Dim Name2 As String = xml.<Name2>.Single().Value
Dim Name1作为String=xml..Single().Value
Dim Name2的字符串=xml..Single().Value
这不是有效的XML文档-您需要一个根元素。您还应该真正地将选项严格设置为
。而且。。。你的问题是什么?代码a)没有编译,b)崩溃,c)产生错误的结果,d)其他什么?也许你可以看看。@Mark Ya抱歉,刚才添加了我得到的错误,忘记了:(它是编译的,但当我将组合框更改为我正在测试的文本时,它会出现上述错误。无需担心。您得到的错误来自一个.Single
调用。根据您的示例XML,您的XML中没有
或
元素,因此可能是其中之一?您还应该使用.Value
要从XElement
获取字符串值-我认为它的工作原理是因为选项严格关闭
对字符串进行隐式转换。您也不需要每次调用XElement.Load
,只需加载XML一次并将其保存在变量中。每次加载相同的XML文档-DocList+“\parts.xml”
-所以只需Dim-xml作为XElement=XElement.Load(DocList+“\parts.xml”)
…Dim-Name1作为String=xml..Single().Value
。这就是您要问的吗?感谢所有的帮助标记!