按属性搜索XML元素(C#)
我正在尝试检查XML元素的特定属性,以便避免保存重复的元素条目。XML大致如下所示:按属性搜索XML元素(C#),c#,xml,C#,Xml,我正在尝试检查XML元素的特定属性,以便避免保存重复的元素条目。XML大致如下所示: <root> <artist name="Coldplay"> <track name="yellow" artist="Coldplay" url="coldplay.com/yellow" playCount="123" /> <track name="fix you" artist="Coldplay" url=
<root>
<artist name="Coldplay">
<track name="yellow" artist="Coldplay" url="coldplay.com/yellow" playCount="123" />
<track name="fix you" artist="Coldplay" url="coldplay.com/fixyou" playCount="135" >
</artist>
//ect.
</root>
但我不知道那是什么,而且,你可能比我更清楚的原因是,我无法“谷歌”一组像那样的特殊字符,而不会得到奇怪的结果。因此,如果有人能为If检查声明提供建议,我将不胜感激!或者是关于特殊字符在C#中使用方式的名称或链接。这是一个XPath表达式。您可以将它们与c#中的各种XML相关对象一起使用 一般参考: XPath与LINQ:。这是一个-但就我个人而言,我会使用LINQ到XML来搜索自己:
XDocument doc = XDocument.Load("test.xml");
var track = doc.Descendants("track")
.Where(t => (string) t.Attribute("id") == "foo")
.FirstOrDefault();
(如果需要,请使用Single
、SingleOrDefault
、First
等。)
XmlDocument xd = new XmlDocument();
xd.LoadXml( xmlString );
XmlNodeList nodes = xd.SelectNodes( "//root/artist/track[@name='yellow']" );
XDocument doc = XDocument.Load("test.xml");
var track = doc.Descendants("track")
.Where(t => (string) t.Attribute("id") == "foo")
.FirstOrDefault();