Tutaj jest przykładem szybkie użycie LINQ do analizy niektórych XML i get na słodkie, słodkie atrybuty tam.
Oto kod XML ma przeanalizować:
<?wersja pliku XML = "1.0" Kodowanie = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><Nazwa PageLayout = "xyzzy">
<Tabulatory>
<Karta TabOrder = "1" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
<Karta TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2 ułatwia wprowadzanie" />
</Tabulatory>
</PageLayout><Nazwa PageLayout = "xyzzy2">
<Tabulatory>
<Karta TabOrder = "100" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
<Karta TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2 ułatwia wprowadzanie" />
<Karta TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</Tabulatory>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Chcę, aby stworzyć niektóre karty w czasie wykonywania przez analizowanie powyższego. Moje karty zależą od układu strony. Jeśli nazwa Mój układu strony jest "xyzzy2" następnie chcę uzyskać karty 100, 101 i 103 (kart <Nazwa PageLayout = "xyzzy2">).
Oto LINQ, który robi:
var allTabs =
z p w
XElement.Parse(theXmlToParse).
Elementy("PageLayouts").
Elementy("PageLayout")
w przypadku gdy (p.Attribute("Nazwa").Value.Equals("xyzzy2"))
od m w p.Elements("Tabs").Elementy("Karta")
Wybierz m;Results.text = ciąg.Puste;
foreach (var. aTab w allTabs)
{
Results.Text =
"Kolejność tabulatorów: " + aTab.Attribute("TabOrder").Wartość + " |" +
"Etykieta kartę: " + aTab.Attribute("TabLabel").Wartość + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Wartość + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Wartość + "r";
}
W powyższym, Zmienna "theXmlToParse" jest zmienna typu string, jednak można użyć obciążenia() Metoda strumienia, jeśli chcesz.
"Wyniki" jest etykietą w formularzu sieci web i gdy ten kod jest wykonywany, wygląda to:
Jeszcze nie pracowałem jak sortować wyniki jeszcze, tak pozostawiam że dla przyszłych blogu.
</koniec>
Follow me on Twitter wiek na http://www.twitter.com/pagalvin