Avatar billede hofnof Nybegynder
13. november 2002 - 14:10 Der er 2 kommentarer

ASP, XML, JAVASCRIPT

jeg har et stort problem med dette script:
problemet består i jeg gerne i mit XML-document vil indsætte et childelement + underelementer med content
dette gøres fra en form der submit'es scriptet, jeg kan bare ikke få fat i documentelementet. 8-(
håber der sidder en haj der har lidt tid (og brug for 200 points)

ASP'EN
<%@LANGUAGE="JavaScript"%>
<%
    var navn = Request.Form("navn");
    var filNavn = Request.Form("filnavn");

    oSource = Server.CreateObject("MSXML2.DOMDocument.4.0");
    oSource.async = false;
    oSource.setProperty("SelectionLanguage", "XPath");
    oSource.load("MMS_Content.xml");
   
    var strXPath = "//*****det er nok her der er problemer************content/mms_picture[@id='1']/name";
    var oRootE = oSource.selectNodes(strXPath);
    Response.Write(oRootE.nodeValue)

    var oNyMMS = oSource.createNode(1, "mms_picture", "");
    oNyMMS.setAttribute("id", skafUnikId());
    oRootE.appendChild(oNyMMS);
   
    var oNavn = oSource.createNode(1, "name", "")
    oNavn.text = navn;
    oNyMMS.appendChild(oNavn)

    var oFilnavn = oSource.createNode(1, "filename", "");
    oFilnavn.text = filNavn;
    oNyMMS.appendChild(oFilnavn);   
   
    filobjekt = Server.CreateObject("Scripting.FileSystemObject");
    fil = filobjekt.OpenTextFile(Server.MapPath("MMS_Content.xml"), 2, true, -1);
    fil.Write(oSource.xml);

Response.Redirect ("NyMMS.html");
%>

XML'EN

<?xml version="1.0"?>
<content>
    <mms_picture id="1">
        <name>123</name>
        <filename>123.gif</filename>
    </mms_picture>
    <mms_picture id="2">
        <name>234</name>
        <filename>234.gif</filename>
    </mms_picture>
    <mms_picture id="3">
        <name>345</name>
        <filename>345.gif</filename>
    </mms_picture>
    <mms_picture id="4">
        <name>456</name>
        <filename>456.gif</filename>
    </mms_picture>
    <mms_picture id="5">
        <name>567</name>
        <filename>567.gif</filename>
    </mms_picture>
</content>

HTML'EN
<html>

<head>
    <title></title>
</head>

<body>
    <form action="MMS_Content.asp" method="post">
        <input type="text" name="navn" />
        <input type="text" name="filNavn" />
        <input type="submit" name="OK" />
    </form>
</body>


</html>
Avatar billede kimovitch Nybegynder
13. marts 2004 - 11:12 #1
Der er et par ting:
1) Brug Server.MapPath når du åbner xml-filen
2) Hvis du skal tilføje en node til rod-elementet, behøver du ikke XPath, og du skal ikke ud i nogen af noderne.
3) Når du bruger selectNodes() får du et sæt af noder, derfor kan du ikke tilføje childnodes. Du skal bruge selectSingleNode().
4) Du behøver ikke et fileSystemObject objekt for at gemme - du kan bare bruge oSource.save(sti)

Alt i alt skulle nedenstående virke.

Med venlig hilsen
Kim Bak

<%@LANGUAGE="JavaScript"%>
<%
    var navn = Request.Form("navn");
    var filNavn = Request.Form("filnavn");

    oSource = Server.CreateObject("MSXML2.DOMDocument.4.0");
    oSource.async = false;
    oSource.load(Server.MapPath("MMS_Content.xml"));
    var oRootE = oSource.selectSingleNode("content");
    var oNyMMS = oSource.createNode(1, "mms_picture", "");

//    oNyMMS.setAttribute("id", skafUnikId());
//  ****** Udkommenteret fordi funktionen skafUnikID ikke var vedlagt

    oRootE.appendChild(oNyMMS);
   
    var oNavn = oSource.createNode(1, "name", "")
    oNavn.text = navn;
    oNyMMS.appendChild(oNavn)

    var oFilnavn = oSource.createNode(1, "filename", "");
    oFilnavn.text = filNavn;
    oNyMMS.appendChild(oFilnavn);   
   
    oSource.save(Server.MapPath("MMS_Content.xml"));

Response.Redirect ("NyMMS.html");
%>
Avatar billede kimovitch Nybegynder
16. april 2004 - 21:05 #2
Hey Hofnof
Fik du løst dit problem?
M.v.h.
Kim
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