jag har
[red]
<site>
<personligt>
<brev>[b]Testar Vad som händer[/b]</brev>
</personligt>
</site>
[/red]
hur gör jag för att byta ut den feta texten mot variabeln strBrev, när jag använder mig av XMLDOM i asp/VBScript
Tacksam för svar?
6 svar · 478 visningar · startad av icaaq
jag har
[red]
<site>
<personligt>
<brev>[b]Testar Vad som händer[/b]</brev>
</personligt>
</site>
[/red]
hur gör jag för att byta ut den feta texten mot variabeln strBrev, när jag använder mig av XMLDOM i asp/VBScript
Tacksam för svar?
Något sånt här, skulle jag gissa på:
Dim xmlDoc, xmlNode, xmlString
set xmlDoc = Server.CreateObject ( "MSXML2.DOMDocument" )
xmlDoc.async = False
set xmlNode = xmlDoc.documentElement.childNodes.item ( 0 )
' Följande rad [b]hämtar[/b] värdet på noden
xmlString = xmlNode.childNodes.item ( 0 ).text
' Följande rader sätter ett nytt värde med variabel
xmlString = "Nytt värde"
xmlNode.childNodes.item ( 0 ).text = xmlString
Har inte testat själv, men förhoppningsvis fungerar det. :)
Jag försökte fixa lite efter mina behov men jag fick
**msxml3.dll error '80004005'
This operation can not be performed with a Node of type XMLDECL.
/cv/admin/pb.asp, line 144**
och då använder jag
[red]
Dim strBrev 'String
strBrev = Trim(Request.Form("brev"))
'***************************
'Letar reda på settings.xml
strSourceFile = "G:\webbapplikationer\cv\admin\settings.xml"
Dim xmlDoc, xmlNode, xmlString
set objXML = Server.CreateObject ( "MSXML2.DOMDocument" )
objXML.async = False
objXML.load(strSourceFile)
set xmlNode = objXML.documentElement.selectSingleNode("personligt")
' Följande rad <B>hämtar</B> värdet på noden
' Följande rader sätter ett nytt värde med variabel
[b]objXML.childNodes.item ( 0 ).text = strBrev[/b]
objXML.save(strSourceFile)
[/red]
har jag gjort nått knas?
Med @nders hjälp fixade jag till det......så här blev det
[red]
' Kollar om det är en "postback"
If Request.Form > "" Then
'****************************
'Dimmar variabler
Dim strBrev 'String
Dim objXML 'object
Dim objXMLNode 'object
'***************************
'Lägger in värdet i strBrev ifrån formuläret
strBrev = Trim(Request.Form("brev"))
'Letar reda på settings.xml
strSourceFile = "G:\webbapplikationer\cv\admin\settings.xml"
'Skapar XMLobjektet
Set objXML1 = Server.CreateObject("Microsoft.XMLDOM")
objXML1.async = False
objXML1.load(strSourceFile)
set objXMLNode = objXML1.documentElement.selectSingleNode("personligt")
' Följande rader sätter ett nytt värde med variabel
objXMLNode.childNodes.item ( 0 ).text = strBrev
'Sparar allt...
objXML1.save(strSourceFile)
'Förstör objektet
Set objXMLNode = Nothing
Set objXML1 = Nothing
Response.Redirect "add.asp"
Else
Call Page
End If
[/red]
Nästa fråga:
Vad är skillnaden på
[red]
Server.CreateObject ( "MSXML2.DOMDocument" )
[/red]
och
[red]
Server.CreateObject("Microsoft.XMLDOM")
[/red]
[red]
'skapar en ny node
xmlNode = "<portfolios>" & Chr(13) & Chr(10) & Chr(9) &_
"<bild>"& strBild &" </bild>" & Chr(13) & Chr(10) & Chr(9) &_
"<url>"& strUrl &" </url>" & Chr(13) & Chr(10) & Chr(9) &_
"<namn>"& strNamn &"</namn>" & Chr(13) & Chr(10) & Chr(9) &_
"<beskrivning>"&strBeskrivning &"</beskrivning>" & Chr(13) & Chr(10) &_
"</portfolios>"
'Letar reda på settings.xml
strSourceFile = "D:\Inetpub\Externa\icaaq\cv\admin\settings.xml"
'Skapar ett XML-objekt
Set objXML1 = Server.CreateObject("Microsoft.XMLDOM")
'lägger in setting.xml i minnet
objXML1.load(strSourceFile)
'Letar reda på <portfolio>
Set rootTerms = objXML1.documentElement.selectSingleNode("portfolio")
'Skapar ett till XMLobjekt och lägger in den nya noden i den
Set objXML2 = Server.CreateObject("Microsoft.XMLDOM")
objXML2.load(xmlNode)
Set rootNewNode = objXML2.documentElement
'Lägger in den nya noden i xmlfilen
[b]rootTerms.appendChild(rootNewNode)[/b]
'Sparar allt
objXML1.save(strSourceFile)
[/red]
jag får:
**error '80070057'
The parameter is incorrect.
/cv/admin/add/portf.asp, line 186**
vad är fel........jag har ju skrivit av detta exempel..... :OO
jag hade glömt objXML2.loadxml