Εδώ είναι ένα γρήγορο παράδειγμα χρησιμοποιώντας το LINQ να αναλύσει μερικές XML και να πάρετε στο γλυκό, γλυκό αποδίδει σ ' αυτό.
Εδώ είναι το XML που θέλω να αναλύσει:
<?XML έκδοση = 1.0»" κωδικοποίηση = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout όνομα = "xyzzy">
<Καρτέλες>
<Στην καρτέλα TabOrder = "1" TabLabel = "x" SharePointContentType = "ένα" AdditionalConstraints = "ac1" />
<Στην καρτέλα TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</Καρτέλες>
</PageLayout><PageLayout όνομα = "xyzzy2">
<Καρτέλες>
<Στην καρτέλα TabOrder = "100" TabLabel = "x" SharePointContentType = "ένα" 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("Καρτέλες").Στοιχεία(«Καρτέλα»)
Επιλέξτε m;Results.Text = συμβολοσειρά.Άδειο;
foreach (var aTab σε allTabs)
{
Results.Text =
"Σειρά tab: " + aTab.Attribute("TabOrder").Αξία + " |" +
"Καρτέλα ετικέτα: " + aTab.Attribute("TabLabel").Αξία + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Αξία + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Αξία + "r";
}
Στο παραπάνω, η μεταβλητή "theXmlToParse" είναι μια μεταβλητή συμβολοσειράς, αλλά μπορείτε να χρησιμοποιήσετε το φορτίο() μέθοδος σε ένα ρεύμα, αν σας αρέσει.
«Αποτελέσματα» είναι μια ετικέτα μιας φόρμας web και όταν αυτός ο κώδικας εκτελεί, μοιάζει με αυτό:
Εγώ δεν έχουν εργαστεί έξω πώς να ταξινομήσετε τα αποτελέσματα ακόμη, έτσι θα το αφήσω αυτό για μια μελλοντική θέση blog.
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin