Linqを使った高速操作XML

9143 ワード

内容を始める前に、話を共有しておきます.
時には、何をするべきかを知っている時には、すぐにできます.例えば、機能を実現するためには、コードワードの作業は難しくないです.検索をしても、何の困難もありません.しかし、やっています.世界中の仕事が全部繰り返されているようです.だから、心が飛んでくるような感じがします.でも、足のスピードが遅いと感じています.進度について不満を言い始めました.会社もあなたに期待しています.そこで助手を配置します.後で上司になりました.自分でコードをコードしなくなりました.そして、何をしてもあなたの助手たちに教えます.この時、あなたは考え込んでいます.私は何をすればいいですか?たまに、間違った方向に向かって何かを発見して、ユーザーが文句を言い始めました.ジャンプして、アシスタント達の間違いを指摘して、それから仕事が終わりました.止められないです.このようなことが再発するのを恐れて、深く考えてみてください.今度はあなたが勉強したいのですが、優秀なチームの力を維持するにはどうすればいいですか?古板は方法ではないです.古板はあなたのチームメンバーに古い道を歩ませます.彼らは単一、繰り返し、退屈さを感じます.あなたはコードを書くことができません.休みなしの思考を避けるために、あなたが書いたコードも機能しないし、意外なことにあなたのPRが必要です.突破したいです.思考の制限を突破したいです.突破はあなたの挑戦だけでなく、あなたの唯一の道です.
本文
<?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(@"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を取得しました.
参考住所:http://docs.google.com/fileview?id=0B9T0APtVi1fyNjNhM2I4NmEtMTdmOS00NTUzLTljZTUtMDdhZjM4NzIzMGEz&hl=zh_CN
http://www.cnblogs.com/jiajiayuan/archive/2012/02/09/2343512.html