尝试编写一个让我选择一个特定的office元素的选择
这是我的XML
<?xml version="1.0">
<regions>
<region>
<office>
<name>Office One</name>
</office>
<office>
<name>Office Two</name>
</office>
<settings>
<name>Main Regional Name</name>
</settings>
</region>
<region>
<office>
<name>Office Three</name>
</office>
<office>
<name>Office Four</name>
</office>
<settings>
<name>Secondary Regional Name</name>
</settings>
</region>
这是我的密码
Dim clfWizardXml As XElement
Dim selectRegion = lstRegions.SelectedItem
Dim selectOffice = lstOffices.SelectedItem
Console.WriteLine(selectRegion + " " + selectOffice)
Dim officeList As IEnumerable(Of XElement) = _
From region In clfWizardXml.Elements("region"), _
office In clfWizardXml.Elements("region").Elements("office") _
Where region.Element("settings").Element("name").Value = selectRegion _
And office.Element("name").Value = selectOffice
Select office
我想我的问题就在这里:和office.Element(“名称”).Value= selectOffice
谢谢大家的帮助,问题是我在第二个地区有一个错误的职位。
发布于 2014-06-19 21:08:57
看起来您的问题是clfWizardXml.Elements("region")
不返回任何东西,因为region
不是直接在文档下面。相反,您需要clfWizardXml.Root.Elements("region")
或clfWizardXml.Descendants("region")
Dim officeList As IEnumerable(Of XElement) = _
From region In clfWizardXml.Root.Elements("region"), _
office In clfWizardXml.Root.Elements("region").Elements("office") _
Where region.Element("settings").Element("name").Value = selectRegion _
And office.Element("name").Value = selectOffice
Select office
此外,由于VB.NET支持XML文本,所以您可以使它看起来更好看一些(无论如何,您可能不同意):
Dim officeList As IEnumerable(Of XElement) =
From region In clfWizardXml...<region>,
office In region.<office>
Where region.<settings>.<name>.Value = selectRegion _
AndAlso office.<name>.Value = selectOffice
Select office
https://stackoverflow.com/questions/24315766
复制相似问题