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


Útmutató: XML-literálok módosítása (Visual Basic)

A Visual Basic kényelmes módot kínál az XML-literálok módosítására. Elemeket és attribútumokat adhat hozzá vagy törölhet, valamint lecserélhet egy meglévő elemet egy új XML-elemre is. Ez a témakör számos példát mutat be egy meglévő XML-literál módosítására.

XML-literál értékének módosítása

  1. Egy XML-literál értékének módosításához szerezze be az XML-literálra mutató hivatkozást, és állítsa a Value tulajdonságot a kívánt értékre.

    Az alábbi példakód egy XML-dokumentum összes <Price> elemének értékét frissíti.

    For Each book In From element In catalog.<Catalog>.<Book>
      book.<Price>.Value = (book.<Price>.Value * 1.05).ToString("#.00")
    Next
    

    Az alábbiakban a mintaforrás XML-fájlját és a kód példájából módosított XML-t mutatjuk be.

    Forrás XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    

    Módosított XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>47.20</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>48.25</Price>
      </Book>
    </Catalog>
    

    Megjegyzés:

    A Value tulajdonság a gyűjtemény első XML-elemére hivatkozik. Ha egy gyűjteményben több elem is azonos nevű, a Value tulajdonság beállítása csak a gyűjtemény első elemére vonatkozik.

Attribútum hozzáadása XML-literálhoz

  1. Ha attribútumot szeretne hozzáadni egy XML-literálhoz, először szerezze be az XML-literálra mutató hivatkozást. Ezután hozzáadhat egy attribútumot egy új XML-attribútumtengely-tulajdonság hozzáadásával. Új XAttribute objektumot is hozzáadhat az XML-literálhoz a Add metódus használatával. Az alábbi példában mindkét lehetőség látható.

    Dim newAttribute = "editorEmail"
    Dim editorID = "someone@example.com"
    For Each book In From element In catalog.<Catalog>.<Book>
      ' Add an attribute by using an XML attribute axis property.
      book.@genre = "Computer"
    
      ' Add an attribute to the Attributes collection.
      book.Add(New XAttribute(newAttribute, editorID))
    Next
    

    Az alábbiakban a mintaforrás XML-fájlját és a kód példájából módosított XML-t mutatjuk be.

    Forrás XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    

    Módosított XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" genre="Computer" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331" genre="Computer" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    

    Az XML-attribútumtengely tulajdonságairól további információt az XML attribútumtengely tulajdonságában talál.

Egy elem hozzáadása XML-literálhoz

  1. Ha elemet szeretne hozzáadni egy XML-literálhoz, először szerezze be az XML-literálra mutató hivatkozást. Azt követően hozzáadhat egy új XElement objektumot az elem utolsó alelemeként a Add metódus segítségével. Metódusával XElement új AddFirst objektumot adhat hozzá, mint első alelem.

    Ha új elemet szeretne hozzáadni egy adott helyhez más alelemekhez képest, először kérjen egy hivatkozást egy szomszédos alelemre. A XElement metódussal ezután az új AddBeforeSelf objektumot a szomszédos alelem elé helyezheti. Az új XElement objektumot a szomszédos alelem után is hozzáadhatja a AddAfterSelf metódus használatával.

    Az alábbi példa példákat mutat be ezekre a technikákra.

    Dim vbBook = From book In catalog.<Catalog>.<Book> 
                 Where book.<Title>.Value = 
                   "Developing Applications with Visual Basic .NET"
    
    vbBook(0).AddFirst(<Publisher>Microsoft Press</Publisher>)
    
    vbBook(0).Add(<PublishDate>2005-2-14</PublishDate>)
    
    vbBook(0).AddAfterSelf(<Book id="bk999"></Book>)
    
    vbBook(0).AddBeforeSelf(<Book id="bk000"></Book>)
    

    Az alábbiakban a mintaforrás XML-fájlját és a kód példájából módosított XML-t mutatjuk be.

    Forrás XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
    </Catalog>
    

    Módosított XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" >
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331">
        <Publisher>Microsoft Press</Publisher>
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
        <PublishDate>2005-2-14</PublishDate>
      </Book>
      <Book id="bk999"></Book>
    </Catalog>
    

Elem vagy attribútum eltávolítása XML-literálból

  1. Ha el szeretne távolítani egy elemet vagy attribútumot egy XML-literálból, szerezze be az elemre vagy attribútumra mutató hivatkozást, és hívja meg a Remove metódust az alábbi példában látható módon.

    For Each book In From element In catalog.<Catalog>.<Book>
      book.Attributes("genre").Remove()
    Next
    
    For Each book In From element In catalog.<Catalog>.<Book> 
                     Where element.@id = "bk999"
      book.Remove()
    Next
    

    Az alábbiakban a mintaforrás XML-fájlját és a kód példájából módosított XML-t mutatjuk be.

    Forrás XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" genre="Computer" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331" genre="Computer" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book>
      <Book id="bk999"></Book>
    </Catalog>
    

    Módosított XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101" editorEmail="someone@example.com">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
      </Book>
      <Book id="bk000"></Book>
      <Book id="bk331" editorEmail="someone@example.com">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
      </Book></Catalog>
    

    Ha el szeretné távolítani az összes elemet vagy attribútumot egy XML-literálból, szerezze be az XML-literálra mutató hivatkozást, és hívja meg a metódust RemoveAll .

XML-literál módosítása

  1. Egy XML-elem nevének módosításához először szerezze be az elemre mutató hivatkozást. Ezután létrehozhat egy új XElement , új nevű objektumot, és átadhatja az új XElement objektumot a ReplaceWith meglévő XElement objektum metódusának.

    Ha a lecserélt elemnek vannak olyan alelemei, amelyeket meg kell őrizni, állítsa az új XElement objektum értékét a Nodes meglévő elem tulajdonságára. Ezzel az új elem értékét a meglévő elem belső XML-fájljára állítja. Ellenkező esetben az új elem Value értékét a meglévő elem tulajdonságára állíthatja.

    Az alábbi példakód az összes <Description> elemet egy <Abstract> elemre cseréli. Az elem tartalma az <Description> objektum tulajdonságának használatával megmarad az <Abstract>Nodes<Description> új XElement elemben.

    For Each desc In From element In catalog.<Catalog>.<Book>.<Description>
      ' Replace and preserve inner XML.
      desc.ReplaceWith(<Abstract><%= desc.Nodes %></Abstract>)
    Next
    
    For Each price In From element In catalog.<Catalog>.<Book>.<Price>
      ' Replace with text value.
      price.ReplaceWith(<MSRP><%= price.Value %></MSRP>)
    Next
    

    Az alábbiakban a mintaforrás XML-fájlját és a kód példájából módosított XML-t mutatjuk be.

    Forrás XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <Price>44.95</Price>
        <Description>
          An in-depth look at creating applications
          with <technology>XML</technology>. For
          <audience>beginners</audience> or
          <audience>advanced</audience> developers.
        </Description>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <Price>45.95</Price>
        <Description>
          Get the expert insights, practical code samples, and best
          practices you need to advance your expertise with
          <technology>Visual Basic .NET</technology>.
          Learn how to create faster, more reliable applications
          based on professional, pragmatic guidance by today's top
          <audience>developers</audience>.
        </Description>
      </Book>
    </Catalog>
    

    Módosított XML:

    <?xml version="1.0"?>
    <Catalog>
      <Book id="bk101">
        <Author>Garghentini, Davide</Author>
        <Title>XML Developer's Guide</Title>
        <MSRP>44.95</MSRP>    <Abstract>
          An in-depth look at creating applications
          with <technology>XML</technology>. For
          <audience>beginners</audience> or
          <audience>advanced</audience> developers.
        </Abstract>
      </Book>
      <Book id="bk331">
        <Author>Spencer, Phil</Author>
        <Title>Developing Applications with Visual Basic .NET</Title>
        <MSRP>45.95</MSRP>    <Abstract>
          Get the expert insights, practical code samples, and best
          practices you need to advance your expertise with
          <technology>Visual Basic .NET</technology>.
          Learn how to create faster, more reliable applications
          based on professional, pragmatic guidance by today's top
          <audience>developers</audience>.
        </Abstract>
      </Book>
    </Catalog>
    

Lásd még