0

是否可以使用 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

4

1 回答 1

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现在包含SimonJohn


另一种方式:

xml.Elements.First(function(e) e.Name = "Harrison").Elements _
            .Select(function(h) h.Value)

或简单地使用XPath

xml.XPathSelectElements("Harrison/preName").Select(Function(n) n.Value)
于 2012-12-06T13:10:49.887 回答