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

PHPz
發布: 2017-04-23 16:40:57
原創
2086 人瀏覽過

很多時候我們需要用到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);
        }
    }
登入後複製

這樣我們就可以獲得 標籤裡所有的資料了,並且把他們儲存到列表iTestResultXml中。

在testResult.xml檔案中,我們看到, 標籤設定了本身的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);   //获取指定属性的方法
        }
    }
登入後複製

這樣我們就取得了 標籤裡id屬性的列表iXmlID。

以上是Xml之Linq如何遍歷儲存的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!