Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az XML-literál lehetővé teszi, hogy közvetlenül beépítse az XML-t a Visual Basic kódba. Az XML-literál szintaxis a LINQ-t az XML-objektumokhoz jelöli, és az XML 1.0 szintaxishoz hasonló. Így könnyebben hozhat létre XML-elemeket és dokumentumokat programozott módon, mivel a kód szerkezete megegyezik a végleges XML-fájléval.
A Visual Basic XML-literálokat fordít LINQ-ra XML-objektumokká. A LINQ–XML egyszerű objektummodellt biztosít az XML létrehozásához és manipulálásához, és ez a modell jól integrálható Language-Integrated Queryvel (LINQ). További információért lásd XElement.
Visual Basic-kifejezéseket xml-literálba ágyazhat be. Futtatáskor az alkalmazás létrehoz egy LINQ-ból XML-objektumot minden egyes literálhoz, amely a beágyazott kifejezések értékeit tartalmazza. Ez lehetővé teszi, hogy dinamikus tartalmat adjon meg egy XML-literálon belül. További információ: Beágyazott kifejezések XML-ben.
Az XML-literális szintaxis és az XML 1.0 szintaxis közötti különbségekről további információt az XML Literálok és az XML 1.0 specifikációja című témakörben talál.
Egyszerű literálok
A Visual Basic kódban érvényes XML beírásával vagy beillesztésével hozhat létre LINQ to XML objektumot. Az XML-elem literál egy XElement objektumot ad vissza. További információkért lásd az XML Element Literal és az XML-literálok és az XML 1.0 specifikáció. Az alábbi példa egy több gyermekelemet tartalmazó XML-elemet hoz létre.
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
XML-dokumentumot úgy hozhatsz létre, hogy egy XML-literált kezdesz <?xml version="1.0"?> módon, ahogy az alábbi példában látható. Egy XML-dokumentum konkrét egy XDocument objektumot ad vissza. További információ: XML-dokumentumkonstans.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Megjegyzés:
A Visual Basic XML-literálszintaxisa nem azonos az XML 1.0 specifikációjának szintaxisával. További információ: XML-literálok és az XML 1.0 specifikációja.
Sor folytatása
Az XML-literál több sort is átfoghat a sorfolytatási karakterek, mint például a szóköz_aláhúzás_enter, használata nélkül. Így könnyebben összehasonlíthatja a kódban lévő XML-literálokat az XML-dokumentumokkal.
A fordító egy XML-literál részeként kezeli a sorfolytatási karaktereket. Ezért a szóköz aláhúzásjel-enter sorozatot csak akkor érdemes használni, ha az a LINQ to XML objektumba tartozik.
Ha azonban beágyazott kifejezésben többsoros kifejezés van, akkor sorfolytatási karakterekre van szüksége. További információ: Beágyazott kifejezések XML-ben.
Lekérdezések beágyazása XML-literálokban
Egy beágyazott kifejezésben lekérdezést is használhat. Ha ezt teszi, a lekérdezés által visszaadott elemek hozzáadódnak az XML-elemhez. Így dinamikus tartalmat adhat hozzá egy XML-konstanshoz, például egy felhasználó lekérdezésének eredményét.
Az alábbi kód például beágyazott lekérdezéssel hoz létre XML-elemeket a phoneNumbers2 tömb tagjaiból, majd ezeket az elemeket a rendszer gyermekeiként contact2adja hozzá.
Public Class XmlSamples
Public Sub Main()
' Initialize the objects.
Dim phoneNumbers2 As Phone() = {
New Phone("home", "206-555-0144"),
New Phone("work", "425-555-0145")}
' Convert the data contained in phoneNumbers2 to XML.
Dim contact2 =
<contact>
<name>Patrick Hines</name>
<%= From p In phoneNumbers2
Select <phone type=<%= p.Type %>><%= p.Number %></phone>
%>
</contact>
Console.WriteLine(contact2)
End Sub
End Class
Class Phone
Public Type As String
Public Number As String
Public Sub New(ByVal t As String, ByVal n As String)
Type = t
Number = n
End Sub
End Class
Objektumok létrehozása XML-konstansokból
A Visual Basic fordítója az XML-konstruktorokkal egyenértékű LINQ-konstruktorokra irányuló hívásokra fordítja le az XML-literálokat, hogy a LINQ-t XML-objektummá alakítsa. A Visual Basic fordító például a következő kódpéldát egy XML-verzióutasítás konstruktorának XProcessingInstruction hívásává, a XElement, <contact> és <name> elemekhez <phone> konstruktorának hívásává, valamint az XAttribute attribútumért type konstruktorának hívásává fogja lefordítani. Az alábbi mintában szereplő attribútumok alapján a Visual Basic fordító kétszer hívja meg a konstruktort XAttribute(XName, Object) . Az első átadja a type értéket a name paraméterhez, és a home értéket a value paraméterhez. A második a type paraméter értékeként a name értéket adja át, de a work paraméter esetében a value értéket.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>