是否可以使用LINQ从父元素中提取子元素,例如:
XML
<?xml version="1.0"?>
<Names>
<Harrison>
<preName>Simon</preName>
<preName>John</preName>
</Harrison>
<Smith>
<preName>Harvey</preName>
<preName>Oscar</preName>
</Smith>
</Names>
VB.NET
private sub query()
Dim file as string = "C:\SomexmlFile.xml"
Dim query = From Names In File
Where Names = Harrison
Select preName
end sub
这样的事情会起作用吗?是否有任何语法可以选择该子元素的所有preNames,如MySql“Select * FROM file WHERE Name = Harrison”(我知道这不会起作用,因为MySql不会查询xml,但你明白我的意思)
TIA
答案 0 :(得分:1)
不确定
Dim xml = <Names>
<Harrison>
<preName>Simon</preName>
<preName>John</preName>
</Harrison>
<Smith>
<preName>Harvey</preName>
<preName>Oscar</preName>
</Smith>
</Names>
Dim harrisons = from prename in xml.<Harrison>
from name in prename.<preName>
select name.Value
harrisons
现在包含Simon
和John
。
另一种方式:
xml.Elements.First(function(e) e.Name = "Harrison").Elements _
.Select(function(h) h.Value)
或仅使用XPath:
xml.XPathSelectElements("Harrison/preName").Select(Function(n) n.Value)