Avatar billede cold_raider Nybegynder
22. juli 2007 - 02:37 Der er 10 kommentarer og
1 løsning

Skriv til XML

Hey!

Jeg har en XML fil som snakker sammen med noget flash.

På hjemmesiden skal jeg så kunne uploade en fil og så skal noget data sættes ind i XML filen.

<?xml version="1.0" encoding="UTF-8" ?>
<file>
  <file name="Test1" noget="Noget1" file="Nogetandet1.jpg" />
  <file name="Test2" noget="Noget2" file="Nogetandet2.jpg" />
  <file name="Test3" noget="Noget3" file="Nogetandet3.jpg" />
  <file name="Test4" noget="Noget4" file="Nogetandet4.jpg" /> </files>

Der er en fileUpload som sender filnavn.jpg til "file"
Der er en textboks som sener teksten til "file name"
Der er en textboks som sender teksten til "noget"

Der skal altså tilføjes en linje mellem <files> </files>

Håber der er en der kan hjælpe mig med det.
Det skal skæres temmelig meget ud is pap for er ny til xml, så der er 200 points til den der kan hjælpe mig.

Det skal i kodes i VB.

På forhånd tak
Avatar billede kalp Novice
22. juli 2007 - 11:28 #1
du vil altså gerne kunne producere et xml document som det du har skitseret?

jeg kan lave et eksempel i C#
Avatar billede cold_raider Nybegynder
22. juli 2007 - 15:23 #2
jeg har XML filen, der skal bare skrives en ny linie når man uploader en ny fil.
F.eks. vælger man et billede og uploader det ved at trykke på f.eks upload knappen.
Så skriver den f.eks. <file name="Test5" noget="Noget5" file="Nogetandet5.jpg" /> efter  <file name="Test4" noget="Noget4" file="Nogetandet4.jpg" />

Du kan godt give et eksempel i C# måske kan jeg lave det om til VB og bruge det.
Avatar billede kalp Novice
22. juli 2007 - 16:14 #3
XmlDocument document = new XmlDocument();
            document.Load(@"C:\data.xml");
            XmlNode files = document.SelectSingleNode("//files");
            XmlNode file = document.CreateElement("file");
            XmlAttribute name = document.CreateAttribute("name");
            name.Value = "test";
            XmlAttribute noget = document.CreateAttribute("noget");
            noget.Value = "test";
            XmlAttribute attributeFile = document.CreateAttribute("file");
            attributeFile.Value = "test";
            file.Attributes.Append(name);
            file.Attributes.Append(noget);
            file.Attributes.Append(attributeFile);
            files.AppendChild(file);
            document.Save(@"C:\data.xml");
Avatar billede kalp Novice
22. juli 2007 - 16:15 #4
du skal jo gøre præcis det samme i VB.. du skal bare oprette elementerne på VB måden.
det kræver desuden, at du har skriverettigheder til den fil der.
Avatar billede cold_raider Nybegynder
22. juli 2007 - 17:28 #5
Ja men jeg aner ikke hvordan jeg skal bruge det der.. Du har bare skrevet noget kode.. Jeg ved ikke om det skal ind i en Class eller om det skal i Codebehinden.. Hvordan bruger jeg det der?
Avatar billede kalp Novice
22. juli 2007 - 18:34 #6
"bare" :-)

okay..

jeg forstår ikke dit spørgsmål til hvor sådan noget kode skal skrives...
det bestemmer du da selv.
og forvirrer det dig, at du kan det så læg koden der hvor der bliver afviklet kode når man trykker på din upload knap.

teknisk set er det eneste der gøres i den xml jeg har skrevet følgende:

1. omskrives til vb.net.
2. angive stien til xml filen.
3. udfylde name.value, noget.value, og attributeFile.value.
og det er her du selv bør vide hvordan du henter selve data'en der skal stå attributerne.
Avatar billede cold_raider Nybegynder
22. juli 2007 - 19:53 #7
okay nu har jeg prøvet mig lidt frem og jeg kom frem til den her kode:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim document As XmlDocument = New XmlDocument()
        document.Load("app_data/test.xml")
        Dim files As XmlNode = document.SelectSingleNode("//files")
        Dim file As XmlNode = document.CreateElement("file")
        Dim name As XmlAttribute = document.CreateAttribute("name")
        name.Value = "test"
        Dim noget As XmlAttribute = document.CreateAttribute("noget")
        noget.Value = "test"
        Dim attributeFile As XmlAttribute = document.CreateAttribute("file")
        attributeFile.Value = "test"
        file.Attributes.Append(name)
        file.Attributes.Append(noget)
        file.Attributes.Append(attributeFile)
        files.AppendChild(file)
        document.Save("app_data/test.xml")
    End Sub

men den siger at den ikke kan finde xml filen og den siger automatisk at den ligger i C:/app_data/test.xml  og det gør den jo ikke... Hvordan ændrer jeg det og ser koden ellers fin nok ud?
Avatar billede kalp Novice
22. juli 2007 - 20:15 #8
yes koden ser korrekt ud.

jeg tror du skal ud i sådan noget her med hensyn til placering af filen


document.Load(Server.MapPath("app_data/test.xml"))
Avatar billede kalp Novice
22. juli 2007 - 20:15 #9
muligvis noget / foran app_data
Avatar billede cold_raider Nybegynder
22. juli 2007 - 22:30 #10
Jamen fantastisk det virker!! 1000 tak!! Du er gud... 200 point til dig ;)
Avatar billede kalp Novice
23. juli 2007 - 00:07 #11
ingen årsag:-)
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

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