C# 用C语言解析XML文件#
我有一个XML文件,由c++编写的库生成:C# 用C语言解析XML文件#,c#,xml,linq,xpath,xmlreader,C#,Xml,Linq,Xpath,Xmlreader,我有一个XML文件,由c++编写的库生成: <?xml version="1.0" encoding="UTF-8" ?> <main> <days> <day> <date>27.06.2014</date> <p/> </day> <day> <date
<?xml version="1.0" encoding="UTF-8" ?>
<main>
<days>
<day>
<date>27.06.2014</date>
<p/>
</day>
<day>
<date>28.06.2014</date>
<p>
<short>short value</short>
<name>name value</name>
<type>type value</type>
<aud>aud value</aud>
<tr>tr value</tr>
<added>added value</added>
</p>
<p>
<short>short value</short>
<name>name value</name>
<type>type value</type>
<aud>aud value</aud>
<tr>tr value</tr>
<added>added value</added>
</p>
</day>
...
</days>
<di>
<did>
<dayname>Пн</dayname>
<sw>1</sw>
<st>8:00-9:35</st>
</did>
<did>
<dayname>Вт</dayname>
<sw>2</sw>
<st>9:45-11:20</st>
</did>
...
</di>
</main>
如何解析该文件,以便了解该天所属的参数,尤其是如果一天中有几个参数(在本例中为“p”),那么该如何解析该文件?为了在Internet上找到解决方案,许多人说最好使用“LINQ to XML”或“XPath”,但如何维护对象依赖性没有人说。使用XDocument类加载XML,然后可以使用子体或元素方法遍历它
var xml = XDocument.Load("your xml string");
foreach (var day in xml.Descendants("day"))
{
var pChildren = day.Descendants("p").ToList();
var aretThereMorePs = pChildren.Count() > 1;
foreach (var p in pChildren)
{
var shortVal = (string)p.Element("short");
//etc
}
}
我不知道我是否理解你所说的“如何维护对象依赖关系”是什么意思。我如何才能获得所有子节点类型“p”的某个“day”标记?。。。如果您有一个有效的XML文件。
var xml = XDocument.Load("your xml string");
foreach (var day in xml.Descendants("day"))
{
var pChildren = day.Descendants("p").ToList();
var aretThereMorePs = pChildren.Count() > 1;
foreach (var p in pChildren)
{
var shortVal = (string)p.Element("short");
//etc
}
}