【发布时间】:2014-04-28 14:41:37
【问题描述】:
这可能很菜鸟,但我遇到了一些最简单的问题。这是我的 xml:
<CustomFieldOptions>
<DataType>Text</DataType>
<Options>
<Option Key="Advokater">category_advokater</Option>
<Option Key="Arkitektur- & ingeniørvirksomheder">category_arkitektur</Option>
<Option Key="Bank & finans">category_bank</Option>
</Options>
我正在尝试将节点值和键属性获取到列表中,例如:
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
while(reader.Read())
{
reader.ReadToFollowing("Option");
key = reader.ReadInnerXml();
reader.MoveToFirstAttribute();
value = reader.Value;
if(key.Length > 0 && value.Length > 0)
categoryList.Add(key, value);
}
}
所以,对于第一个选项,我应该得到一个键值对
但是在添加到列表时,我有当前/上一行的混合值。我哪里错了?
提前谢谢!
/snedker
【问题讨论】:
-
你有使用XmlReader吗?如果您可以改用 LINQ to XML,它可能会让您的生活更简单。
-
PS:也尝试了 while (reader.ReadToFollowing("Option")) 没有运气。
-
嗨乔恩,我可以做很多事情来完成这项工作。解析外部 xml、xpath...等等。但现在我真的很想让这个读者工作。只是因为。 :-)
-
您是否尝试过在读取内部XML之前读取属性值?