我试图在Visual Studio中使用C#从XML库(下面的文件)中获取信息。
<buttons>
<measurement>
<scan id="0" time="20 53 06">
<q address="40" state="0"/>
<q address="41" state="0"/>
<q address="42" state="1"/>
<q address="43" state="0"/>
<q address="44" state="1"/>
<q address="45" state="1"/>
<q address="46" state="1"/>
<q address="47" state="1"/>
</scan>
</measurement>
<measurement>
<scan id="1" time="20 53 07">
<q address="40" state="0"/>
<q address="41" state="0"/>
<q address="42" state="0"/>
<q address="43" state="0"/>
<q address="44" state="1"/>
<q address="45" state="0"/>
<q address="46" state="0"/>
<q address="47" state="0"/>
</scan>
</measurement>
<measurement>
<scan id="2" time="20 53 08">
<q address="40" state="0"/>
<q address="41" state="1"/>
<q address="42" state="0"/>
<q address="43" state="1"/>
<q address="44" state="1"/>
<q address="45" state="0"/>
<q address="46" state="0"/>
<q address="47" state="1"/>
</scan>
</measurement>
<measurement>
<scan id="3" time="20 53 09">
<q address="40" state="1"/>
<q address="41" state="0"/>
<q address="42" state="0"/>
<q address="43" state="1"/>
<q address="44" state="1"/>
<q address="45" state="0"/>
<q address="46" state="1"/>
<q address="47" state="0"/>
</scan>
</measurement>
<measurement>
<scan id="4" time="20 53 10">
<q address="40" state="0"/>
<q address="41" state="0"/>
<q address="42" state="1"/>
<q address="43" state="1"/>
<q address="44" state="1"/>
<q address="45" state="1"/>
<q address="46" state="0"/>
<q address="47" state="0"/>
</scan>
</measurement>
<measurement>
<scan id="5" time="20 53 11">
<q address="40" state="1"/>
<q address="41" state="1"/>
<q address="42" state="1"/>
<q address="43" state="0"/>
<q address="44" state="0"/>
<q address="45" state="0"/>
<q address="46" state="1"/>
<q address="47" state="0"/>
</scan>
</measurement>
<measurement>
<scan id="6" time="20 53 12">
<q address="40" state="0"/>
<q address="41" state="1"/>
<q address="42" state="1"/>
<q address="43" state="0"/>
<q address="44" state="0"/>
<q address="45" state="1"/>
<q address="46" state="1"/>
<q address="47" state="1"/>
</scan>
</measurement>
<measurement>
<scan id="7" time="20 53 13">
<q address="40" state="1"/>
<q address="41" state="1"/>
<q address="42" state="1"/>
<q address="43" state="1"/>
<q address="44" state="1"/>
<q address="45" state="0"/>
<q address="46" state="1"/>
<q address="47" state="1"/>
</scan>
</measurement>
这是我第一次尝试读取XML文件。
我想做的是:
我要输入ID,程序应该返回数组中的所有q状态。
这是我尝试过的:
using System.Xml;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Path to my xml");
XmlNodeList titleNodes = xmlDoc.SelectNodes("//buttons/measurment/scan/q");
foreach(XmlNode titleNode in titleNodes)
Console.WriteLine(titleNode.Attribute["address"]);
Console.ReadKey();
我知道这段代码只会在控制台中显示一些q属性。我从不发怒,因为它不起作用(控制台窗口中什么都没有出现)。而且我不知道为什么。我只是不了解这个XmlRead,XmlDeocument。我在这里是学习形式:教程。我一直在追踪每一个词干和例子。只有XmlRead对我有用。但是,它只会读取所有内容,而不会读取特定区域。
您能告诉我一些例子或解决方案吗?
假设xml格式正确,并且根节点完全关闭,则字符串中有一个错字,measurement
并且正确选择了所有q
标签
XmlNodeList titleNodes = xmlDoc.SelectNodes("//buttons/measurement/scan/q");
如果你只想要一个ID下的那些
XmlNodeList titleNodes = xmlDoc.SelectNodes("//buttons/measurement/scan[@id=2]/q") ;
如果没有这样的ID,您将得到一个空集合,但不会出现异常错误:因此可以对这种情况进行管理。
最后,不要忘记Value
领域
Console.WriteLine(titleNode.Attributes["address"].Value);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句