我有这个xml文件:
<key1>value 1</key1>
<key2>value 2</key2>
<key3>value 3</key3>
<key4>value 4</key4>
我想解析它并得到一个包含我元素的所有属性的字典。 要做到这一点,我有这个代码:
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
string key="";
string value="";
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
key=(reader.Name)
break;
case XmlNodeType.Text:
value=(reader.Value)
element_dictionnary.Add(key,value);
break;
}
}
}
一切正常,问题是如果一个节点是空的,就像这个文件一样:
<key1></key1>
<key2>value 2</key2>
<key3>value 3</key3>
<key4>value 4</key4>
一切都转移了,我的词典变成了这个:
KEY1 / VALUE2
KEY2 /值3
.....
基本上,我想知道如何将节点值与节点名相关联,即使节点值为空。
提前感谢您的帮助。
答案 0 :(得分:0)
使用
检查该reader.Value为空string.IsNullOrEmpty(reader.Value)
所以你的代码变成了
switch (reader.NodeType)
{
case XmlNodeType.Element:
key=(reader.Name)
break;
case XmlNodeType.Text:
value=(reader.Value)
if (!string.IsNullOrEmpty(value))
element_dictionnary.Add(key,value);
break;
}