问题1:假设我正在阅读XmlNodeType.Text,我想知道它的标记节点名称。如果不上下移动光标,怎么做?另外,我如何知道当前节点标签的父标签?
问题2:假设我正在阅读xml文件,我想从特定节点标记开始。怎么办?
问题3:如果你有xsd文件,有没有简单的方法来上传xml文件?我正在使用C#3.5 .net和sql server 2008。
这是我到目前为止写的:
XmlTextReader reader = new XmlTextReader("datafile.xml");
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
Console.Write(reader.Name);
}
else if (reader.NodeType == XmlNodeType.Text)
{
Console.Write("/"+reader.Name+"/" + reader.Value+"/");
}
else
{
if (reader.NodeType == XmlNodeType.EndElement)
{
Console.WriteLine(reader.Name);
Console.ReadLine();
}
}
}
reader.Close();
如果您需要更多说明,请告诉我
答案 0 :(得分:2)
XmlReader是无状态的,只保留有关当前节点的信息,因此如果您正在读取元素的内容并希望知道元素名称,则需要确保在读取start元素节点时以某种方式保留元素名称。
再次,如果您想知道父元素的名称,则需要在阅读xml文档时自己保留此信息/状态。
如果您希望开始在特定节点上阅读,您应该逐个节点地阅读xml文档,直到您阅读了您想要开始的节点。
最终通过XmlReader
类读取xml比替代方法更难,一般来说,如果xml文档非常大,则只使用XmlReader
,在大多数其他情况下使用其中一种替代方法:
有关详细信息,请参阅XML Serialization in the .NET Framework
如果您真的想要使用XmlReader
,那么您应该阅读Using the XmlReader Class 。