首頁  >  文章  >  後端開發  >  Xml之Linq如何遍歷儲存的數據

Xml之Linq如何遍歷儲存的數據

PHPz
PHPz原創
2017-04-23 16:40:572053瀏覽

很多時候我們需要用到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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn