Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何访问XML的某些部分?_C#_Xml_.net 2.0 - Fatal编程技术网

C# 如何访问XML的某些部分?

C# 如何访问XML的某些部分?,c#,xml,.net-2.0,C#,Xml,.net 2.0,你好 如何访问这部分XML并打印元素名? 请参考下图 我现在无法处理以下代码: XmlDataDocument xmldoc = new XmlDataDocument(); XmlNode xmlnode; FileStream fs = new FileStream(@"D:\Files\20120604\Data_120604-062516_003.xml", FileMode.Open, File

你好

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

我现在无法处理以下代码:

    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");

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

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

使用

Pattern=@“\?>\s*?*?*?”

如果不需要文档的其余部分,则不要使用
XmlDataDocument
(过时的btw)或
XmlDocument
,而是使用
XmlReader
替代(
XmlTextReader
也有点过时):


阅读你试了什么?你看过文件了吗?你犯了什么错误?什么是42?这是我到目前为止所做的,但无法在这方面取得进展:
XmlDataDocument xmldoc=new XmlDataDocument();XmlNode XmlNode;FileStream fs=newfilestream(@“D:\Files\20120604\Data\u 120604-062516\u 003.xml”,FileMode.Open,FileAccess.Read);xmldoc.Load(fs)抱歉,但我的场景是我有很多XML文件,我必须知道每个XML的第一个元素的名称。。例如,对于第一个元素,XML1有YUMDMMATMAS05,XML2有YUMDMMATMAS05。我不知道第一个人的名字element@yonan2236我的解决方案不要求您知道第一个元素的名称。我是说,在调用xmldoc.Load()之后,您可以在上面的代码中使用xmldoc.DocumentElement.name来访问第一个元素的名称。很抱歉,我没有立即获得它,但它对我有效。谢谢Fur@yonan2236没问题。很高兴能帮上忙。
Pattern = @"\?>\s*?<(?<Name>.*?)>.*?</(1)>"
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)
            }