תג ארכיון: LINQ

ניתוח מבנה XML עם LINQ

הנה דוגמא מהירה באמצעות 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" הוא משתנה מחרוזת, אך באפשרותך להשתמש העומס() שיטת בזרם אם אתה אוהב.

"תוצאות" הוא תווית בטופס אינטרנט והן בעת ביצוע קוד זה, זה נראה כך:

SNAGHTML11cd2e7c

לא הסתדר כיצד למיין את התוצאות עדיין, כך לעזוב את בבלוג בעתיד.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin