很多時候我們需要用到Xml文件,但是什麼是Xml文件呢?
以下我們用一個例子來說明:testResult.xml文件
<?xml version="1.0" encoding="utf-8" ?> <Columns> <column id="序号"> <name>序号</name> </column> <column id="检验项目"> <name>检验项目</name> </column> <column id="单位"> <name>单位</name> </column> <column id="标准要求"> <name>标准要求</name> </column> <column id="检验结果"> <name>检验结果</name> </column> <column id="结论"> <name>结论</name> </column> </Columns>
以上就是一個Xml文件,我們知道,Xml文件是用來儲存數據的,那我們要如何遍歷這些數據呢?
其實最簡單的方法,就是使用Linq:
private void GetTestResultXml() { List<string> iTestResultXml=new List<string>(); //定义并从xml文件中加载节点(根节点) XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml"); //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......) IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column") select target; foreach (XElement node in targetNodes) { iTestResultXml.Add(node.Value); } }
這樣我們就可以獲得9ca8bcd8dc9da41be539812c43422c59 標籤裡所有的資料了,並且把他們儲存到列表iTestResultXml中。
在testResult.xml檔案中,我們看到, 9ca8bcd8dc9da41be539812c43422c59 標籤設定了本身的id,而此id並不是他的數據,而是他的一個屬性,
那麼如果我們想獲得他的屬性而不是他標籤裡的內容該如何獲得呢?
private void GetTestResultXml() { List<string> iXmlID = new List<string>(); //定义并从xml文件中加载节点(根节点) XElement rootNode = XElement.Load(@"..\..\Xml\testResult.xml"); //查询语句: 获得根节点下name子节点(此时的子节点可以跨层次:孙节点、重孙节点......) IEnumerable<XElement> targetNodes = from target in rootNode.Descendants("column") select target; foreach (XElement node in targetNodes) { iXmlID.Add(node.Attribute("id").Value); //获取指定属性的方法 } }
這樣我們就取得了 9ca8bcd8dc9da41be539812c43422c59 標籤裡id屬性的列表iXmlID。
以上是Xml之Linq如何遍歷儲存的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!