นี่คือ ตัวอย่างรวดเร็วโดยใช้ 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" ตัวแปรเป็นตัวแปรสตริง, แต่คุณสามารถใช้โหลด() วิธีการในลำธารถ้าคุณต้องการ.
"ผลลัพธ์" คือ ป้ายชื่อ บนเว็บฟอร์ม และ เมื่อดำเนินการรหัสนี้, โดยมีลักษณะดังนี้:
ฉันยังไม่ได้ทำงานวิธีการเรียงลำดับผลลัพธ์ยัง, เพื่อที่จะฝากที่สำหรับบล็อกในอนาคต.
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin