webForumDet fria alternativet

Xmldom

5 svar · 468 visningar · startad av SPiN

SPiNMedlem sedan mars 20005 832 inlägg
#1

Hallå!

När jag skapar ett XML-dokument mha Microsoft's XMLDOM i ASP, får jag all XML på en enda rad. Finns det något sätt att komma förbi det här, eller måste jag helt enkelt acceptera det? :(

Det är så jobbigt att kolla på när man öppnar filen med en texteditor.

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

VideMedlem sedan dec. 19996 094 inlägg
#2

Som i ASP kan du lägga in vbcrlf i ASP-koden vilket resulterar i en radbrytning i klientkoden...

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

@ndersMedlem sedan juni 200026 914 inlägg
#3

om du bara ska titta på filen blir det ganska bra om du lyfter upp den i internet explorer. om det är ren xml-data vill säga.

annars kan du ju ladda hem en 30-dagars på världens bästa editor, det tycker jag du ska göra i alla fall. du hittar xmlspy på www.xmlspy.com .

mvh,

------------------
mördar-anders, det är jag.

SPiNMedlem sedan mars 20005 832 inlägg
#4

Hallå igen!

@nders> Jaja, de vet ja väl :)
Men eftersom att jag är en perfektionist vill jag att det ska vara snyggt även när man INTE öppnar XML-filen med IE.

Vide> Ok, hur?! Jag har försökt o försökt, men inte fått det att funka...

Så här gör jag när jag skapar XML-dokumenten:

<%
Dim objXML, objRoot, objElement, objNode

set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.preserveWhiteSpace = False
objXML.async = False

set objRoot = objXML.createElement("rotelement")
objXML.appendChild objRoot

set objElement = objXML.createElement("underelement")
objRoot.appendChild objElement

set objNode = objXML.createElement("element")
objNode.Text = "XML skapad via ASP och XMLDOM"
objElement.appendChild objNode

set objElement = objXML.createElement("underelement")
objRoot.appendChild objElement

set objNode = objXML.createElement("element")
objNode.Text = "Men allt blir på en rad!"
objElement.appendChild objNode

set objProcess = objXML.createProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1""")
objXML.insertBefore objProcess, objXML.childNodes(0)

objXML.save "C:\Inetpub\wwwroot\minXML.xml"

set objNode		= Nothing
set objElement	= Nothing
set objRoot		= Nothing
set objXML		= Nothing
%>

Resultatet i filen minXML.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rotelement><underelement><element>XML skapad via ASP och XMLDOM</element></underelement><underelement><element>Men allt blir på en rad!</element></underelement></rotelement>

Hur kul är det att kolla på?! ;)

Jag vill ju ha det som när man skriver XML'en själv, dvs:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rotelement>
	<underelement>
		<element>XML skapad via ASP och XMLDOM</element>
	</underelement>
	<underelement>
		<element>Men allt blir på en rad!</element>
	</underelement>
</rotelement>

Hur gör du när du lägger in tabbar och radbrytningar, Vide? :q
Använder du vbTab och vbCrLf i ASP'n, eller?

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

VideMedlem sedan dec. 19996 094 inlägg
#5

Hmm... ja när du skapar det via XMLDOM så vet jag inte (läste inte ditt första inlägg så bra ;)), det funkar ju självklart bara om du skapar ditt dokument via fso.

Men det kanske finns någon parameter för att dens skall skapa den som du vill, men det vet jag inte i huvudet...

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

clownMedlem sedan juni 2000126 inlägg
#6

Hej,

om du kör xml filen med ett xsl-som bara kopierar alla dina noder men som lägger till följande kommando längst upp:

<xsl:output method="xml" indent="yes"/>

så kommer din xml att transformeras genom xsl till ett nytt xml men nu med alla taggarna indenterade!

Har inte provat det själv, men jag tror det bör fungera!

Lycka till
/Jonas

------------------
Jonas Florin
-Din gycklare i vardagen-

[Redigerat av clown den 23 sep 2001]

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb