İşte bazı ayrıştırmak için LINQ kullanarak hızlı bir örnek XML ve tatlı, al, tatlı orada özellikleri.
İşte ayrıştırmak istediğiniz XML:
<?XML sürüm "1.0 =" kodlama = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout adı "xyzzy" =>
<Sekmeleri>
<Sekme TabOrder = "1" TabLabel = "x" SharePointContentType = "bir" AdditionalConstraints "ac1" = />
<Sekme TabOrder "2 =" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints "ac2" = />
</Sekmeleri>
</PageLayout><PageLayout adı "xyzzy2" =>
<Sekmeleri>
<Sekme TabOrder = "100" TabLabel = "x" SharePointContentType = "bir" AdditionalConstraints "ac1" = />
<Sekme TabOrder "101 =" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints "ac2" = />
<Sekme TabOrder "103 =" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints "ac3" = />
</Sekmeleri>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Ben yukarıda ayrıştırma tarafından çalışma zamanında bazı sekmeler oluşturmak istiyorum. Benim sekmeleri sayfa düzeni bağlıdır. Sonra benim sayfa düzeni'nın adı "xyzzy2" ise sekmeleri almak istiyorum 100, 101 ve 103 (sekmeleri <PageLayout adı "xyzzy2" =>).
İşte öyle LINQ:
var allTabs =
içinde p
XElement.Parse(theXmlToParse).
Öğeleri("PageLayouts").
Öğeleri("PageLayout")
nerede (p.Attribute("adı").Value.Equals("xyzzy2"))
p.Elements--dan m("Tabs").Öğeleri("Sekme")
m seçin;Results.Text = dize.Boş;
foreach (allTabs de var aTab)
{
Results.Text =
"Sekme sırası: " + aTab.Attribute("TabOrder").Değer + " |" +
"Sekme etiketi: " + aTab.Attribute("TabLabel").Değer + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Değer + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Değer + "r";
}
Belgili tanımlık yukarıda içinde, bir dize değişkenine "theXmlToParse" değişkendir, ama sen-ebilmek kullanma belgili tanımlık yük() Eğer bir akış yöntemi.
"Sonuçlar" bir web formunda ve bu kodu yürütüldüğünde etikettir, Bu gibi görünüyor:
Ben nasıl sonuçlar henüz sıralamak için çalıştı değil, Ben, bir gelecekte blog yazısı için bırakacağım.
</sonunda>
Heyecan beni izleyin http://www.twitter.com/pagalvin