აქ არის სწრაფი მაგალითად გამოყენებით LINQ გარჩევის ზოგიერთი XML და მიიღოთ sweet, sweet ატრიბუტები მასში.
აი XML მინდა გარჩევის:
<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout name="xyzzy">
<Tabs>
<Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
<Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
</Tabs>
</PageLayout><PageLayout name="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>
მინდა შექმნა გარკვეული ჩანართების at runtime მიერ პარსინგის ზემოთ. ჩემი ჩანართები დამოკიდებული გვერდზე განლაგებას. თუ ჩემს გვერდზე განლაგება სახელზე არის "xyzzy2" მაშინ მე მინდა ჩანართების 100, 101 და 103 (ჩანართების <PageLayout სახელი = "xyzzy2">).
აი LINQ რომ აკეთებს:
var allTabs =
ეხლა P ში
XElement.Parse(theXmlToParse).
ელემენტები("PageLayouts").
ელემენტები("PageLayout")
სადაც (p.Attribute("name").Value.Equals("xyzzy2"))
ეხლა მ p.Elements("Tabs").ელემენტები("Tab")
შერჩევა მ;Results.Text = string.Empty;
foreach (var aTab in allTabs)
{
Results.Text =
"Tab Order: " + aTab.Attribute("TabOrder").ფასი + " |" +
"Tab Label: " + aTab.Attribute("TabLabel").ფასი + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").ფასი + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").ფასი + "\r";
}
აღნიშნულ, ცვლადი "theXmlToParse" არის სიმებიანი ცვლადი, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ დატვირთვა() მეთოდის ნაკადი თუ გნებავთ.
"შედეგები" არის ლეიბლთან ვებგვერდი ფორმა და როდესაც ეს კოდი გაუშვებს, როგორც ჩანს, ამ:
მე არ მუშაობდა, თუ როგორ დასალაგებლად შედეგები ჯერ კიდევ, ასე რომ დავტოვებთ, რომ მომავალში დღიურში.
</ბოლო>
გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin