我的xml看起来像这样:
<nodes><skus><sku>abc</sku><sku>def123</sku></skus></nodes>
我希望获得名为'sku'
的所有元素我已经加载了xml的XDocument。
List<XElement> elements = doc.Elements.Where( ??? )
或者我会这样做:
doc.Elements("sku")
如果没有元素,我不希望这会返回错误。
答案 0 :(得分:3)
Elements()
仅返回节点的直接子节点。
doc.Descendants("sku");
应该做的伎俩。它沿着后代轴搜索。
答案 1 :(得分:1)
static void Main(string[] args)
{
var g = XDocument.Parse("<nodes><skus><sku>abc</sku><sku>def123</sku></skus></nodes>");
var t = from e in g.Descendants("sku")
select e;
}
编辑:我开始这个例子,但是被打断了 - 即使它杀了我,我也决定把这个代码拿到SO上!
答案 2 :(得分:0)
您需要该标记名称元素的节点列表:
XmlNodeList nodes = doc.GetElementsByTagName("sku");