如何从具有递归子标签的 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>
我有一个 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>