【发布时间】:2012-01-23 17:31:41
【问题描述】:
一段时间以来,我一直在努力使用 c# 中的 XMLReaderClass,但似乎无法理解这个概念。基本上我想遍历 XML 文件,如果 xml 文档中的类别与我传入的类别相同,我想将其名称添加到列表中。
这里是xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- Do not modify this xml file. -->
<Products>
<product category="Food" name="Baking potatoes" />
<product category="Food" name="Chicken fillet" />
<product category="Food" name="Chocolate gateau" />
<product category="Food" name="Madras curry sauce" />
<product category="Food" name="Organic carrots" />
<product category="Food" name="Semi-skimmed milk" />
<product category="Home" name="Washing powder" />
<product category="Home" name="Rubber gloves" />
<product category="Home" name="Spray wax" />
<product category="Home" name="Dish soap" />
<product category="Pet" name="Cat food" />
<product category="Pet" name="Dog food" />
<product category="Pet" name="Collar" />
<product category="Pet" name="Leash" />
</Products>
这是我的代码,我已经开始着手处理,但还没有走多远:(
public ReadOnlyCollection<string> GetProductsByCategory(string category)
{
List<string> returnList = new List<string>();
using (XmlReader productsReader = GetProductsReader())
{
productsReader.MoveToContent();
while (productsReader.Read())
if(productsReader.NodeType == XmlNodeType.Element)
{
if (productsReader)
{
if productsReader
}
}
}
return new ReadOnlyCollection<string>(returnList);
}
【问题讨论】:
-
这是 LINQ 的完美任务。你是故意不使用它吗?
-
为什么要使用 XmlReader 而不是更友好的 XDocument 或 XmlDocument 类?
-
长话短说,我必须使用 XMLReader
-
长话短说,你还在坚持使用 .NET 2.0 吗?您可以使用 XMLReader 将数据加载到像 @Jeff Mercado 建议的 XDocument 中