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

そのようなものは機能しますか?MySql "Select * FROM file WHERE Name = Harrison"のように、その子要素のすべてのpreNameを選択する構文はありますか(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とが含まれるように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)
于 2012-12-06T13:10:49.887 に答える