我需要从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>
Run Code Online (Sandbox Code Playgroud)
这是代码,在以下帖子的帮助下:无法隐式转换类型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;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在上面的xml中获得值Test,test2,test3,test4?
使用XElement.XAttribute(string)方法获取特定属性,然后您可以将其强制转换为string或使用.Value属性来获取它的值:
var list = xdoc.Descendants("Categories")
.SelectMany(p => p.Elements("name"))
.Select(e => (string)e.Attribute("text"))
.ToList();
Run Code Online (Sandbox Code Playgroud)