C# Linq到Xml前缀解析错误
我目前正试图学习如何解析数据,这有点让人困惑。有人能看看我的代码,看看我做错了什么,或者我是否朝着正确的方向前进 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 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();