Avatar billede mmalling Nybegynder
08. januar 2012 - 22:46 Der er 2 kommentarer

Ændre og tilføje data i xml fil automatisk

Jeg har nogle xml filer som jeg læser ind i andre programmer bla. til brug i en webshop.
Disse xml filer sider jeg som det er nu og retter i manuelt, da nogle kategorier i filen skal slettet, andre skal ændres til et andet navn.
Denne proces har jeg prøvet at lave automatisk med Visual basic, men det går ikke helt som jeg vil have det.

jeg har en xml fil der indeholder 3000 poster og er bygget således op.:

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <WorkTab>
    <MenuLev_0>Printfremstilling &amp; kemi</MenuLev_0>
    <MenuLev_1>Printplader, enkeltsidet</MenuLev_1>
    <MenuLev_2>Phenol printplader</MenuLev_2>
    <MenuLev_3>Universal boards med øer</MenuLev_3>
    <Prod_ID />
    <Prod_Varenr>BN 811/6</Prod_Varenr>
    <Dist_Varenr>021202600</Dist_Varenr>
    <EAN_kode />
    <ROLINE />
    <Prod_navn />
    <Vare_navn>Universal boards med øer, enkeltsidet</Vare_navn>
    <Lande_kode />
    <Lager_saldo>64</Lager_saldo>
    <Tilg_Dato />
    <Tilg_kvt>0</Tilg_kvt>
    <Prod_beskriv>Universal boards med øer, enkeltsidet - 100 mm - 200 mm</Prod_beskriv>
    <Link />
    <Obs />
    <Afgift>0.00</Afgift>
    <Afgift_Txt>PVC, WEEE og Batteri afgift</Afgift_Txt>
    <Tilbud />
    <GrænseP />
    <Pris />
    <GrænseR />
    <Rabat />
    <Gr.Dato />
    <Antal_5>500</Antal_5>
    <Pris_5>20,15</Pris_5>
    <Antal_6>300</Antal_6>
    <Pris_6>20,90</Pris_6>
    <Antal_7>100</Antal_7>
    <Pris_7>23,05</Pris_7>
    <Antal_8>25</Antal_8>
    <Pris_8>25,50</Pris_8>
    <Antal_9>10</Antal_9>
    <Pris_9>28,15</Pris_9>
    <Antal_10>1</Antal_10>
    <Pris_10>31,00</Pris_10>
    <WWW_link>http://www.bn-elektronik.dk/ (...)
  </WorkTab>
</DocumentElement>
Det der skal ske automatisk er.:
Teksten der står mellem <MenuLev_0></MenuLev_0> skal dels kunne ændres til noget andet, og nogle af dem skal slettes
Imellem <MenuLev_0>Printfremstilling &amp; kemi</MenuLev_0>
    <MenuLev_1>Printplader, enkeltsidet</MenuLev_1>
    <MenuLev_2>Phenol printplader</MenuLev_2>
    <MenuLev_3>Universal boards med øer</MenuLev_3> skal "," ændres til "-"
Til sidst skal det gemmes i en xml fil og åbnes op  DataGridView

Her er den den kode jeg har lavet indtil videre.
Public Class Form1

   

    Sub test()

        Dim ds1 As DataSet = New DataSet
        Dim Dr As DataRow
        ds1.ReadXml("C:\Users\Michael Malling\Documents\MBM Data\produktfiler\Test15marts11\Test15marts11\50598319.xml")



        Dim FoundRows() As DataRow



        For Each Dr In ds1.Tables(0).Rows
            Try
                FoundRows = ds1.Tables("Multimedia &amp; office produkter").Select
            Catch ex As Exception
            End Try
        Next
        DataGridView1.DataSource = ds1.Tables(0)
        ds1.Tables(0).WriteXml("C:\Users\Michael Malling\Documents\MBMWeb\admin_mbm2010\import\bn1.xml")


    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        test()
    End Sub
End Class
Avatar billede arne_v Ekspert
09. januar 2012 - 02:47 #1
Jeg vil klart anbefale at droppe DataSet og skifte til enten XmlDocument eller XDocument (LINQ to XML) eller lave rettelserne md XSLT.
Avatar billede mmalling Nybegynder
09. januar 2012 - 04:45 #2
okay den kode jeg havde skrevet var faktisk ikke færdig, for kan ikke få den til at virke, det eneste der virker er at den åbner xml filen og intet andet.
Hvad skal der står i koden hvis jeg skal kunne ændre tekst mellem feks.
<MenuLev_0></MenuLev_0>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester