我有xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<record id="177" restricted="false">
<type>record type</type>
<startdate>2000-10-10</startdate>
<enddate>2014-02-01</enddate>
<titles>
<title xml:lang="en" type="main">Main title</title>
<!-- only one title element with type main -->
<title xml:lang="de" type="official">German title</title>
<!-- can have more titles of type official -->
</titles>
<description>description of the record</description>
<categories>
<category id="122">
<name>category name</name>
<description>category description</description>
</category>
<!-- can have more categories -->
</categories>
<tags>
<tag id="5434">
<name>tag name</name>
<description>tag description</description>
</tag>
<!-- can have more tags -->
</tags>
</record>
如何使用LINQ从这些xml文件中选择数据,还是应该使用其他内容?
答案 0 :(得分:1)
您可以使用XDocument
方法将xml加载到Load()
个对象中
对于文件,或Parse()
字符串方法:
var doc = XDocument.Load("your-file.xml");
// OR
var doc = XDocument.Parse(yourXmlString);
然后您可以使用LINQ:
访问数据var titles =
from title in doc.XPathSelectElements("//title")
where title.Attribute("type").Value == "official"
select title.Value;
答案 1 :(得分:0)
正在搜索Xmlserializer的示例并找到了这个:How to Deserialize XML document 那么为什么不试试呢。我做了Ctrl + C和编辑 - &gt;选择性粘贴 - &gt;在Visual Studio 2013中粘贴XML作为类,并且...我已经生成了所有类。一个条件目标框架必须是4.5,并且此功能可从Visual Studio 2012+获得(如该帖子中所述)