如何检查元素标记是否为结束元素
本文关键字:元素 结束 是否 何检查 检查 | 更新日期: 2023-09-27 17:59:10
例如,我有以下类型的条件:
if (reader.IsStartElement("element1"))
{
while (true)
{
if (reader.IsStartElement("element2"))
{
// Doing stuff
reader.ReadEndElement(); //closes element2 tag
}
else if (reader.IsStartElement("element3"))
{
// Doing stuff
reader.ReadEndElement(); //closes element3 tag
}
else if ((!reader.IsStartElement("element2"))
&& (!reader.IsStartElement("element3"))
&& (!reader.IsEndElement("element1"))) // THIS IS MY ISSUE
{
throw new XmlException("exception");
}
else
{
reader.ReadEndElement(); //closes element1 tag
}
}
}
我的xml是用以下类型的格式编写的:
<element1>
<element2>
</element2>
<element3>
</element3>
</element1>
我想说的是,如果在element1
内部读取的元素不是element2
或element3
,并且不是element1
的结束元素标记,那么抛出我编写的异常。问题是,我找不到检查XmlReader的结束元素标记的方法。我可以检查reader.IsStartElement
,但不能检查reader.IsEndElement
。有没有其他方法可以检查类型是否为结束元素?
您可以检查NodeType,然后使用reader验证它是element1的结束标记。名称
if (reader.NodeType == XmlNodeType.EndElement)
{
if(reader.Name == "element1")
{
//it's element1 end tag
}
else
{
//it's the end tag for something else
}
}
您应该使用reader.Read()
来遍历XML,并查看阅读器的NodeType。
XmlNodeType
枚举包含Element
和EndElement
的值。