Megosztás a következőn keresztül:


A LINQ–XML áttekintése a Visual Basicben

A Visual Basic xml-konstansokon és XML-tengelytulajdonságokon keresztül támogatja a LINQ-t az XML-hez. Ez lehetővé teszi, hogy egy jól ismert, kényelmes szintaxist használjon az XML használatához a Visual Basic-kódban. Az XML-literálok lehetővé teszik, hogy az XML-t közvetlenül a kódba foglalja. Az XML-tengely tulajdonságai lehetővé teszik az XML-literál gyermekcsomópontjaihoz, leszármazott csomópontjaihoz és attribútumaihoz való hozzáférést. További információt az XML-literálok áttekintése és az XML elérése a Visual Basicben című témakörben talál.

A LINQ–XML egy memóriabeli XML programozási API, amelyet kifejezetten a Language-Integrated Query (LINQ) előnyeinek kihasználására terveztek. Bár közvetlenül meghívhatja a LINQ API-kat, csak a Visual Basic teszi lehetővé XML-literálok deklarálásához és az XML-tengely tulajdonságainak közvetlen eléréséhez.

Feljegyzés

Az XML-literálok és az XML-tengely tulajdonságai nem támogatottak a deklaratív kódban egy ASP.NET lapon. A Visual Basic XML-funkciók használatához helyezze a kódot egy kód mögötti lapra a ASP.NET alkalmazásban.

Play buttonA kapcsolódó videóbemutatókért lásd: Hogyan kezdhetem el használni a LINQ-t az XML-hez? és hogyan hozhatok létre Excel-számolótáblákat LINQ-ból XML-be?

XML létrehozása

Az XML-fák kétféleképpen hozhatók létre a Visual Basicben. Az XML-literálokat közvetlenül kódban deklarálhatja, vagy a LINQ API-k használatával hozhatja létre a fát. Mindkét folyamat lehetővé teszi, hogy a kód tükrözze az XML-fa végső szerkezetét. A következő kód például létrehoz egy XML-elemet:

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

További információ: XML létrehozása a Visual Basicben.

XML elérése és navigálása

A Visual Basic XML-tengelytulajdonságokat biztosít az XML-struktúrák eléréséhez és navigálásához. Ezek a tulajdonságok lehetővé teszik az XML-elemek és -attribútumok elérését az XML-gyermekelemek nevének megadásával. Másik lehetőségként explicit módon meghívhatja a LINQ metódusokat az elemek és attribútumok navigálásához és helyének meghatározásához. Az alábbi példakód például XML-tengelytulajdonságokkal hivatkozik egy XML-elem attribútumára és gyermekelemére. A példakód egy LINQ-lekérdezést használ a gyermekelemek lekérésére és XML-elemekként való kimenetére, hatékonyan végrehajtva az átalakítást.

' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix.

        Dim contact =
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes =
          <phoneTypes>
              <%= From phone In contact.<ns:phone>
                  Select <type><%= phone.@ns:type %></type>
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

További információt az XML elérése a Visual Basicben című témakörben talál.

XML-névterek

A Visual Basic lehetővé teszi, hogy aliast adjon meg egy globális XML-névtérhez az Imports utasítás használatával. Az alábbi példa bemutatja, hogyan importálhat XML-névteret az Imports utasítás használatával:

Imports <xmlns:ns="http://someNamespace">

XML-névtér-aliast akkor használhat, ha hozzáfér az XML-tengely tulajdonságaihoz, és XML-literálokat deklarál xml-dokumentumokhoz és elemekhez.

Egy adott névtér-előtag objektumát a GetXmlNamespace operátorral kérdezheti leXNamespace.

További információ: Import Statement (XML Namespace).

XML-névterek használata XML-literálokban

Az alábbi példa bemutatja, hogyan hozhat létre globális XElement névteret nshasználó objektumot:

Dim contact1 As XElement = 
    <ns:contact>
        <ns:name>Patrick Hines</ns:name>
        <ns:phone type="home">206-555-0144</ns:phone>
        <ns:phone type="work">425-555-0145</ns:phone>
    </ns:contact>

Console.WriteLine(contact1)

A Visual Basic fordító az XML-névtér-aliasokat tartalmazó XML-literálokat egyenértékű kódra fordítja, amely az XML-névterek xml-jelölését használja az xmlns attribútummal. Fordításkor az előző szakasz példájában szereplő kód lényegében ugyanazt a végrehajtható kódot hozza létre, mint a következő példában:

Dim contact2 As XElement = 
    <ns1:contact xmlns:ns1="http://someNamespace">
        <ns1:name>Patrick Hines</ns1:name>
        <ns1:phone type="home">206-555-0144</ns1:phone>
        <ns1:phone type="work">425-555-0145</ns1:phone>
    </ns1:contact>

Console.WriteLine(contact2)

XML-névterek használata az XML-tengely tulajdonságaiban

Az XML-literálokban deklarált XML-névterek nem használhatók az XML-tengely tulajdonságaiban. A globális névterek azonban használhatók az XML-tengely tulajdonságaival. Kettőspont használatával válassza el az XML-névtér előtagot a helyi elem nevétől. Az alábbiakban egy példa látható:

Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)

Lásd még