คลังเก็บหมวดหมู่: LINQ

การแยกวิเคราะห์ XML ด้วย LINQ

นี่คือ ตัวอย่างรวดเร็วโดยใช้ LINQ แยกบาง  XML และการรับที่หวาน, หวานคุณลักษณะณ.

ที่นี่ถูกต้องการแยกวิเคราะห์ XML:

<?xml version = "1.0" การเข้ารหัส = "อภิปราย" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <ชื่อ PageLayout = "xyzzy">
      <แท็บ>
        <แท็บ TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <แท็บ TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </แท็บ>
    </PageLayout>

    <ชื่อ PageLayout = "xyzzy2">
      <แท็บ>
        <แท็บ TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <แท็บ TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <แท็บ TabOrder = "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("TabOrder").ค่า + " |" +
                  "แท็บป้ายชื่อ: " + aTab.Attribute("TabLabel").ค่า + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").ค่า + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").ค่า + "r";
          }

ในข้างต้น, "theXmlToParse" ตัวแปรเป็นตัวแปรสตริง, แต่คุณสามารถใช้โหลด() วิธีการในลำธารถ้าคุณต้องการ.

"ผลลัพธ์" คือ ป้ายชื่อ บนเว็บฟอร์ม และ เมื่อดำเนินการรหัสนี้, โดยมีลักษณะดังนี้:

SNAGHTML11cd2e7c

ฉันยังไม่ได้ทำงานวิธีการเรียงลำดับผลลัพธ์ยัง, เพื่อที่จะฝากที่สำหรับบล็อกในอนาคต.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin