我正在寻找解析XML文件,并且能够搜索任何元素。
我的XML代码看起来相当非传统(不受我的控制):
<DiagReport>
<LicensingData>
<ToolVersion>6.3.9431.0</ToolVersion>
<LicensingStatus>SL_LICENSING</LicensingStatus>
</LicensingData>
<Health>
<Result>PASS</Result>
<TamperedItems></TamperedItems>
</Health>
<Genuine>
<ServerProps>GenuineId</ServerProps>
</Genuine>
</DiagReport>
我想将每个单数元素加载到一个集合中,即包含ToolVersion
,Result
等的一个集合。从那里,我想遍历每个元素/名称对,并根据元素,做一些不同的事情:
if (element.Equals(Result))
//do something with "PASS"
这可能与LINQ有关吗?
答案 0 :(得分:1)
您可以使用LINQ to XML迭代所有二级元素:
var xdoc = XDocument.Load(@"C:\test.xml");
foreach (var element in xdoc.Element("DiagReport").Elements().Elements())
{
if (element.Name == "Result")
{
string value = element.Value;
}
}
答案 1 :(得分:0)
您可以使用Linq to Xml
查询Xml
文档,然后搜索Elements
,Attributes
并抓住您需要的内容。
可在此处找到更多信息:Basic Queries (LINQ to XML)
你可以创建如下的简单查询。
XElement root = XElement.Parse(File.ReadAllText("C:\\Test.xml"));
var test = new
{
ToolVersion = root.Descendants("ToolVersion").FirstOrDefault().Value,
Result = root.Descendants("Result").FirstOrDefault().Value
};