如何从具有递归子标签的 xml limited 读取多个子标签?

How to read multiple sub tags from xml limited which has recursive subtags?

我有一个 xml 有多个标签。示例:

<code>
    <Value>abc</value>
    <F> T </F>
    <F> A </F>
    <code1>
        <Value>abc</value>
        <F> T </F>
    </code1>
</code>

我只想读取与第一个代码相关联的标签,即前两个标签。但是我的程序也在读取 code1 的标签。

foreach (var item in  element.Descendants("F"))
    {
        flNodeText = flNodeText + Convert.ToString(item.Nodes().First());
    }

元素就是上面提到的整个xml。 我怎样才能让它只读前两个标签。

标签的数量可以变化。

使用 Elements 仅 return 直系子级。您还可以使用 XElement.Value 获取元素的文本内容。

var values = element.Elements("F")
    .Select(x => x.Value);

var flNodeText = string.Concat(values);

参见this fiddle

在 VB .Net 中,这将是

    ' for testing
    Dim xe As XElement = <code>
                             <Value>abc</Value>
                             <F> T </F>
                             <F> A </F>
                             <code1>
                                 <Value>abc</Value>
                                 <F> Z </F>
                             </code1>
                         </code>

    'returns all <F> nodes of root only
    Dim ie As IEnumerable(Of XElement) = xe.<F>
    'returns all <F> nodes of code1 only
    ie = xe.<code1>.<F>
    'returns all <F> nodes
    ie = xe...<F>