Parsing XML dengan LINQ

Berikut adalah contoh cepat menggunakan LINQ untuk mengurai beberapa  XML dan dapatkan di manis, manis atribut di dalamnya.

Di sini adalah saya ingin parse XML:

<?Versi XML = "1.0" pengkodean = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout nama = "xyzzy">
      <Tab>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tab>
    </PageLayout>

    <PageLayout nama = "xyzzy2">
      <Tab>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tab>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Saya ingin membangun beberapa tab pada saat runtime oleh parsing di atas.  Tab saya tergantung pada tata letak halaman.  Jika nama layout halaman saya adalah "xyzzy2" maka saya ingin mendapatkan tab 100, 101 dan 103 (pada tab dalam <PageLayout nama = "xyzzy2">).

Berikut adalah LINQ yang melakukan itu:

var allTabs =
              dari p dalam
                  XElement.Parse(theXmlToParse).
                 
Elemen("PageLayouts").
                  Elemen("PageLayout")
              mana (p.Attribute("nama").Value.Equals("xyzzy2"))
              dari m p.Elements("Tab").Elemen("Tab")
              Pilih m;

          Results.Text = string.Kosong;

          foreach (var aTab di allTabs)
          {
              = Results.Text
                  "Tab ketertiban: " + aTab.Attribute("TabOrder").Nilai + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Nilai + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Nilai + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Nilai + "r";
          }

Di atas, variabel "theXmlToParse" adalah sebuah string variabel, Namun Anda dapat menggunakan beban() metode pada Sungai jika Anda seperti.

"Hasil" adalah label dalam formulir web dan ketika mengeksekusi kode ini, tampak seperti ini:

SNAGHTML11cd2e7c

Aku belum bekerja keluar bagaimana untuk mengurutkan hasil belum, Jadi aku akan meninggalkan itu untuk posting blog masa depan.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Tinggalkan balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *