C# 如何访问XML的某些部分?
你好 如何访问这部分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
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)
}