Berikut adalah contoh yang cepat menggunakan LINQ untuk menghuraikan beberapa XML dan mendapat sekurang-manis, sifat-sifat manis di dalamnya.
Berikut adalah XML yang ingin saya menghuraikan:
<?versi XML = "1.0" pengekodan = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><Nama PageLayout = "xyzzy">
<Tabs>
<Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</Tabs>
</PageLayout><Nama PageLayout = "xyzzy2">
<Tabs>
<Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</Tabs>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Saya mahu membina beberapa tab di runtime oleh menghuraikan di atas. Tab saya bergantung kepada susun atur laman. Jika nama saya layout Laman "xyzzy2" maka saya ingin mendapatkan Tab 100, 101 dan 103 (Tab yang di <Nama PageLayout = "xyzzy2">).
Inilah LINQ yang ia tidak:
VAR allTabs =
dari p di
XElement.Parse(theXmlToParse).
Unsur-unsur("PageLayouts").
Unsur-unsur("PageLayout")
di mana (p.Attribute("nama").Value.Equals("xyzzy2"))
dari m di p.Elements("Tab").Unsur-unsur("Tab")
Pilih m;Results.Text = tali. Kosong;
foreach (VAR aTab di allTabs)
{
Results.Text =
"Tab perintah: " + aTab.Attribute("TabOrder").Nilai + " |" +
"Tab Label: " + aTab.Attribute("TabLabel").Nilai + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Nilai + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Nilai + "r";
}
Di atas, pembolehubah "theXmlToParse" adalah pembolehubah rentetan, tetapi anda boleh menggunakan beban() Kaedah aliran jika anda suka.
"Keputusan" adalah label pada satu borang web dan apabila melaksanakan kod ini, ia kelihatan seperti ini:
Saya belum bekerja bagaimana untuk menyusun keputusan lagi, Jadi saya akan meninggalkan bahawa posting blog masa depan.
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin