C# Linq到Xml前缀解析错误

C# Linq到Xml前缀解析错误,c#,linq-to-xml,C#,Linq To Xml,我目前正试图学习如何解析数据,这有点让人困惑。有人能看看我的代码,看看我做错了什么,或者我是否朝着正确的方向前进 XML文件: <xml xmlns:a='BLAH' xmlns:b='BLAH' xmlns:c='BLAH' xmlns:d='BLAH'> <a:info> <b:cat Option1='blah' Option2='blah' Option3='blah' /> </a:info>

我目前正试图学习如何解析数据,这有点让人困惑。有人能看看我的代码,看看我做错了什么,或者我是否朝着正确的方向前进

XML文件:

<xml xmlns:a='BLAH'
     xmlns:b='BLAH'
     xmlns:c='BLAH'
     xmlns:d='BLAH'>
  <a:info>
   <b:cat Option1='blah' Option2='blah' Option3='blah' />
  </a:info>
</xml>
我是C#新手,我找不到一个好的例子来解释如何成功地使用循环找到多个循环:

<b:chat />


如果您正在查找LINQ to XML,那么您使用的API是错误的。改为使用XDocument类。

假设以下输入XML文档(请注意命名空间URL):


谢谢Sergey,在Option1属性中存储了Option1属性后,我有点困惑如何将其强制转换到文本框或选择元素?你的意思是想将Option1属性的值添加到
RichTextBox
?是的,将值显示到rich textbox中。每次加载文件时,它都会不断告诉我路径中的非法字符。。。。
<b:chat />
<xml xmlns:a='http://localhost/scheme_a'
     xmlns:b='http://localhost/scheme_b'
     xmlns:c='http://localhost/scheme_c'
     xmlns:d='http://localhost/scheme_d'>
    <a:info>
       <b:cat Option1='1' Option2='1' Option3='1' />
    </a:info>

    <a:info>
       <b:cat Option1='2' Option2='2' Option3='2' />
    </a:info>
</xml>
var xmlDocument = new XmlDocument();
xmlDocument.Load(...);

var xmlNamespaceManager = new XmlNamespaceManager(xmlDocument.NameTable);
xmlNamespaceManager.AddNamespace("a", "http://localhost/scheme_a");
xmlNamespaceManager.AddNamespace("b", "http://localhost/scheme_b");
xmlNamespaceManager.AddNamespace("c", "http://localhost/scheme_c");
xmlNamespaceManager.AddNamespace("d", "http://localhost/scheme_d");

var bCatNodes = xmlDocument.SelectNodes("/xml/a:info/b:cat", xmlNamespaceManager);
var option1Attributes = bCatNodes.Cast<XmlNode>().Select(node => node.Attributes["Option1"]);

// Also, all Option1 attributes can be retrieved directly using XPath:
// var option1Attributes = xmlDocument.SelectNodes("/xml/a:info/b:cat/@Option1", xmlNamespaceManager).Cast<XmlAttribute>();
var xDocument = XDocument.Load(...);
XNamespace xNamespace = "http://localhost/scheme_b";
var xElements = xDocument.Descendants(xNamespace + "cat");

// For example, get all the values of Option1 attribute for the b:chat elements:
var options1 = xElements.Select(element => element.Attribute("Option1")).ToList();