我有一个有多个标签的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。 我怎样才能让它只读取前两个标签。
标签数量可能会有所不同。
答案 0 :(得分:1)
使用Elements
仅返回直接孩子。您还可以使用XElement.Value
来获取元素的文本内容。
var values = element.Elements("F")
.Select(x => x.Value);
var flNodeText = string.Concat(values);
请参阅this fiddle。
答案 1 :(得分:0)
在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>