我需要从xml中选择属性。这是xml:
<?xml version="1.0" encoding="utf-8"?>
<Examine>
<Categories>
<name text="test"/>
<name test="test2"/>
<name text="test3"/>
<name text="test4"/>
</Categories>
</Examine>
以下是代码,在以下帖子的帮助下:Cannot implicitly convert type system.colllections.generic
public class XmlValue
{
public System.Xml.Linq.XElement Element { get; set; }
public string Text
{
get
{
if (Element == null) return null;
return Element.Value;
}
}
}
public class XmlParser
{
public List<XmlValue> Getxml()
{
XDocument xdoc = XDocument.Load(@"D:\Web Utf-8 Converter\Categories.xml");
var list = xdoc.Descendants("Categories").SelectMany(p => p.Elements("name")).Select(e => new XmlValue {Element = e}).ToList();
var listing = list.ToList();
return listing;
}
}
如何在上面的xml中获得值Test,test2,test3,test4?
答案 0 :(得分:6)
使用XElement.XAttribute(string)
方法获取特定属性,然后您可以将其投射到string
或使用.Value
属性来获取它的值:
var list = xdoc.Descendants("Categories")
.SelectMany(p => p.Elements("name"))
.Select(e => (string)e.Attribute("text"))
.ToList();