检查节点值是否为空
本文关键字:是否 节点 检查 | 更新日期: 2023-09-27 18:30:51
我有这个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>
一切都变了,我的字典变成了这样:
键 1/值 2
键 2/值 3
.....
所以基本上,我想知道如何将节点值与节点名称相关联,即使节点值为空。
提前感谢您的帮助。
只需检查该阅读器即可。值为空,使用
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;
}