הנה דוגמא מהירה באמצעות LINQ לנתח כמה XML ו- get-מתוק, מתוק תכונות המובא בזאת.
הנה אני רוצה לנתח את מבנה ה-XML:
<?גירסת xml = "1.0" קידוד = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><שם PageLayout = "xyzzy">
<כרטיסיות>
<בכרטיסיה סדר מעבר Tab = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<בכרטיסיה סדר מעבר Tab = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</כרטיסיות>
</PageLayout><שם PageLayout = "xyzzy2">
<כרטיסיות>
<בכרטיסיה סדר מעבר Tab = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<בכרטיסיה סדר מעבר Tab = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<בכרטיסיה סדר מעבר Tab = "103" TabLabel = z"" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</כרטיסיות>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
אני רוצה לבנות חלק מהכרטיסיות בזמן ריצה על-ידי ניתוח לעיל. הכרטיסיות שלי תלויים פריסת דף. אם השם של פריסת הדף שלי הוא "xyzzy2" אז אני רוצה לקבל כרטיסיות 100, 101 ו 103 (הכרטיסיות <שם PageLayout = "xyzzy2">).
הנה LINQ העושה זאת:
var allTabs =
מ- p ב-
XElement.Parse(theXmlToParse).
רכיבים("PageLayouts").
רכיבים("PageLayout")
היכן (p.Attribute("שם").Value.Equals("xyzzy2"))
מ- m p.Elements("לשוניות").רכיבים("Tab")
בחר m;Results.Text = מחרוזת.ריק;
foreach (var aTab ב allTabs)
{
Results.Text =
"סדר טאבים: " + aTab.Attribute("סדר מעבר Tab").ערך + " |" +
"תווית הכרטיסיה: " + aTab.Attribute("TabLabel").ערך + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").ערך + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").ערך + "r";
}
לעיל, המשתנה "theXmlToParse" הוא משתנה מחרוזת, אך באפשרותך להשתמש העומס() שיטת בזרם אם אתה אוהב.
"תוצאות" הוא תווית בטופס אינטרנט והן בעת ביצוע קוד זה, זה נראה כך:
לא הסתדר כיצד למיין את התוצאות עדיין, כך לעזוב את בבלוג בעתיד.
</קצה>
עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin