我尝试读取一些XML,然后将特定信息写入控制台,我的XML文件位于https://aaronlilly.github.io/demo/demo.xml
或也在此处列出:
<DogCenter xmlns="http://schema.dogsite.com/xsi">
<dogActiveState>Available</dogActiveState>
<useDefaultGuardDog>false</useDefaultGuardDog>
<enableGuardDog>true</enableGuardDog>
<guardTimerSeconds>7</guardTimerSeconds>
<useDogOther>true</useDogOther>
<forceHumanToPlay>true</forceHumanToPlay>
<forceDogInCrate>false</forceDogInCrate>
<forceDogFoodLimit>true</forceDogFoodLimit>
<numberConsecutiveBallsBounce>4</numberConsecutiveBallsBounce>
<makeBarkingNoiseIfMailMan>true</makeBarkingNoiseIfMailMan>
<outgoingDogCenter>
<TrainerId>Alpha</TrainerId>
<name>Argoni</name>
</outgoingDogCenter>
<dogCenterList>
<centerDetails>
<TrainerId>Bingo</TrainerId>
<available>true</available>
<tagNumber>80</tagNumber>
<extension>8</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>12</dogLevel>
</centerDetails>
<centerDetails>
<TrainerId>Case</TrainerId>
<available>true</available>
<tagNumber>93</tagNumber>
<extension>1</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>12</dogLevel>
</centerDetails>
<centerDetails>
<TrainerId>Buddy</TrainerId>
<available>false</available>
<tagNumber>60</tagNumber>
<extension>82</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>12</dogLevel>
</centerDetails>
<callCenterDetails>
<TrainerId>Apex</TrainerId>
<available>true</available>
<extension>83</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>3</dogLevel>
</centerDetails>
<centerDetails>
<TrainerId>Marle</TrainerId>
<available>false</available>
<tagNumber>37</tagNumber>
<extension>5</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>3</dogLevel>
</centerDetails>
<cnterDetails>
<TrainerId>Arrow</TrainerId>
<available>true</available>
<extension>84</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>5</dogLevel>
</centerDetails>
<centerDetails>
<TrainerId>Aaron</TrainerId>
<available>true</available>
<extension>64</extension>
<isLogOffAllowed>false</isLogOffAllowed>
</centerDetails>
<centerDetails>
<TrainerId>AlphaAlternate</TrainerId>
<available>true</available>
<extension>65</extension>
<isLogOffAllowed>false</isLogOffAllowed>
</centerDetails>
<centerDetails>
<TrainerId>Monkey</TrainerId>
<available>false</available>
<tagNumber>64</tagNumber>
<extension>14</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>3</dogLevel>
</centerDetails>
<centerDetails>
<TrainerId>Mona</TrainerId>
<available>true</available>
<tagNumber>05</tagNumber>
<extension>85</extension>
<isLogOffAllowed>false</isLogOffAllowed>
<dogLevel>12</dogLevel>
</centerDetails>
</dogCenterList>
</DogCenter>
我想写的是示例
TrainerID = Bingo , Available = True, dogLevel = 12;
对于每个TrainerId(例如,宾果游戏,顶点游戏,蒙娜丽莎)
到目前为止,我所得到的是这个
XmlElement elem = (XmlElement)doc.DocumentElement.FirstChild;
Console.Write("{0} = {1}", elem.Name, elem.InnerText);
哪个写dogActiveState = Available ;
我尝试了for循环
for (int x = 0; x < elem.ChildNodes.Count; x++)
{
Console.WriteLine("{0} = {1}"",elem.Name, elem.InnerXml);
}
和
for (int x = 0; x < elem.ChildNodes.Count; x++)
{
Console.WriteLine("{x}={x+1}",elem.Name, elem.InnerXml);
}
但是我还没有完全掌握语法。
答案 0 :(得分:0)
您可以使用XmlDocument.GetElementsByTagName获取callCenterDetails
元素,并使用XmlNode indexer访问其子元素。
这是一个示例:
var doc = new XmlDocument();
doc.Load("demo.xml");
var callCenterDetails = doc.GetElementsByTagName("callCenterDetails");
for (var i = 0; i < callCenterDetails.Count; i++)
{
var trainerId = callCenterDetails[i]["TrainerId"].InnerText;
// ...
}