如何访问XML的某些部分?

时间:2012-06-04 12:08:52

标签: c# xml .net-2.0

美好的一天!

如何访问XML的这一部分并打印元素名称? 请参考下图。

enter image description here

我现在无法使用以下代码:

    XmlDataDocument xmldoc = new XmlDataDocument();         
                XmlNode xmlnode;
                FileStream fs = new FileStream(@"D:\Files\20120604\Data_120604-062516_003.xml", FileMode.Open, FileAccess.Read);
                xmldoc.Load(fs);


//MessageBox.Show("YUMDMMATMAS05");

3 个答案:

答案 0 :(得分:2)

如果您想要的行为是获取根节点,那么您可以使用xmldoc.DocumentElement获取它。

您可以使用Name属性获取任何XMLElement的名称。

答案 1 :(得分:0)

使用Regex

Pattern = @"\?>\s*?<(?<Name>.*?)>.*?</(1)>"

答案 2 :(得分:0)

如果您不需要文档的其余部分,那么请不要使用XmlDataDocument(过时顺便说一句)或XmlDocument将整个内容读入内存,但请使用XmlReader insted( XmlTextReader也有点过时了):

using(var reader = XmlReader.Create(new FileStream(@"D:\Files\20120604\Data_120604-062516_003.xml", FileMode.Open, FileAccess.Read), new XmlReaderSettings { CloseInput = true, DtdProcessing = DtdProcessing.Ignore, IgnoreComments = true, IgnoreProcessingInstructions = true, IgnoreWhitespace = true }))
            {
                XmlNodeType nt;
                do
                {
                    nt = reader.MoveToContent();
                    if(nt == XmlNodeType.Element) {
                        MessageBox.Show(nt.Name);
                        break;
                    }
                }
                while(nt != XmlNodeType.None)
            }