Crear un xml desde asp

02/03/2007 - 16:29 por starbase | Informe spam
Hola

Estoy usando este código asp que adjunto para crear un fichero xml en el
disco duro.
La cuestión es que necesito añadir un montón de campos antes y no se como
hacerlo. Es decir, necesito añadir esto delante de lo que me genera el
fichero anterior:

<width>200</width>
<height>150</height>
<scaleContent>true</scaleContent>
<firstPage>0</firstPage>
<alwaysOpened>true</alwaysOpened>

No se como hacerlo, ¿Me podeis ayudar?
Gracias!!

Preguntas similare

Leer las respuestas

#1 Matias Iacono
02/03/2007 - 16:48 | Informe spam
Podrias copiar y pegar el codigo?

Los usuarios que se conectan desde la web no pueden ver archivos adjuntos.

Saludos.

Microsoft MVP
Orador Regional INETA


"starbase" wrote:

Hola

Estoy usando este código asp que adjunto para crear un fichero xml en el
disco duro.
La cuestión es que necesito añadir un montón de campos antes y no se como
hacerlo. Es decir, necesito añadir esto delante de lo que me genera el
fichero anterior:

<width>200</width>
<height>150</height>
<scaleContent>true</scaleContent>
<firstPage>0</firstPage>
<alwaysOpened>true</alwaysOpened>

No se como hacerlo, ¿Me podeis ayudar?
Gracias!!



Respuesta Responder a este mensaje
#2 starbase
02/03/2007 - 17:40 | Informe spam
Ahora mismo lo pego

Function ConvertFormtoXML(strXMLFilePath, strFileName) 'Declare local
variables. Dim objDom Dim objRoot Dim objField Dim objFieldValue Dim
objattID Dim objattTabOrder Dim objPI Dim x 'Instantiate the Microsoft
XMLDOM. Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True 'Create your root element and append it
to the XML document. Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot 'Iterate through the Form Collection of the
Request Object. For x = 1 To Request.Form.Count 'Check to see if "btn" is
in the name of the form element. 'If it is, then it is a button and we do
not want to add it 'to the XML document. If
instr(1,Request.Form.Key(x),"btn") = 0 Then 'Create an element, "field".
Set objField = objDom.createElement("field") 'Create an attribute, "id".
Set objattID = objDom.createAttribute("id") 'Set the value of the id
attribute equal the the name of 'the current form field. objattID.Text =
Request.Form.Key(x) 'The setAttributeNode method will append the id
attribute 'to the field element. objField.setAttributeNode objattID
'Create another attribute, "taborder". This just orders the 'elements.
Set objattTabOrder = objDom.createAttribute("taborder") 'Set the value of
the taborder attribute. objattTabOrder.Text = x 'Append the taborder
attribute to the field element. objField.setAttributeNode objattTabOrder
'Create a new element, "field_value". Set objFieldValue =
objDom.createElement("field_value") 'Set the value of the field_value
element equal to 'the value of the current field in the Form Collection.
objFieldValue.Text = Request.Form(x) 'Append the field element as a child
of the root element. objRoot.appendChild objField 'Append the
field_value element as a child of the field elemnt. objField.appendChild
objFieldValue End If Next 'Create the xml processing instruction. Set
objPI = objDom.createProcessingInstruction("xml", "version='1.0'") 'Append
the processing instruction to the XML document. objDom.insertBefore objPI,
objDom.childNodes(0) 'Save the XML document. objDom.save strXMLFilePath &
"\" & strFileName 'Release all of your object references. Set objDom =
Nothing Set objRoot = Nothing Set objField = Nothing Set objFieldValue =
Nothing Set objattID = Nothing Set objattTabOrder = Nothing Set objPI =
NothingEnd Function 'Do not break on an error.On Error Resume Next 'Call
the ConvertFormtoXML function, passing in the physical path to'save the file
to and the name that you wish to use for the file.ConvertFormtoXML
"c:","Contact.xml" 'Test to see if an error occurred, if so, let the user
know.'Otherwise, tell the user that the operation was successful.If
err.number <> 0 then Response.write("Errors occurred while saving your form
submission.")Else Response.write("Your form submission has been saved.")End
If"starbase" escribió en el mensaje
news:
Hola

Estoy usando este código asp que adjunto para crear un fichero xml en el
disco duro.
La cuestión es que necesito añadir un montón de campos antes y no se como
hacerlo. Es decir, necesito añadir esto delante de lo que me genera el
fichero anterior:

<width>200</width>
<height>150</height>
<scaleContent>true</scaleContent>
<firstPage>0</firstPage>
<alwaysOpened>true</alwaysOpened>

No se como hacerlo, ¿Me podeis ayudar?
Gracias!!


Respuesta Responder a este mensaje
#3 starbase
02/03/2007 - 17:59 | Informe spam
A ver si ahora queda en un formato inteligible:


Function ConvertFormtoXML(strXMLFilePath, strFileName)

'Declare local variables.
Dim objDom
Dim objRoot
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim x


'Instantiate the Microsoft XMLDOM.
Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True


'Create your root element and append it to the XML document.
Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot


'Iterate through the Form Collection of the Request Object.
For x = 1 To Request.Form.Count

'Check to see if "btn" is in the name of the form element.
'If it is, then it is a button and we do not want to add it
'to the XML document.
If instr(1,Request.Form.Key(x),"btn") = 0 Then

'Create an element, "field".
Set objField = objDom.createElement("field")

'Create an attribute, "id".
Set objattID = objDom.createAttribute("id")

'Set the value of the id attribute equal the the name of
'the current form field.
objattID.Text = Request.Form.Key(x)

'The setAttributeNode method will append the id attribute
'to the field element.
objField.setAttributeNode objattID

'Create another attribute, "taborder". This just orders the
'elements.
Set objattTabOrder = objDom.createAttribute("taborder")

'Set the value of the taborder attribute.
objattTabOrder.Text = x

'Append the taborder attribute to the field element.
objField.setAttributeNode objattTabOrder

'Create a new element, "field_value".
Set objFieldValue = objDom.createElement("field_value")

'Set the value of the field_value element equal to
'the value of the current field in the Form Collection.
objFieldValue.Text = Request.Form(x)

'Append the field element as a child of the root element.
objRoot.appendChild objField

'Append the field_value element as a child of the field elemnt.
objField.appendChild objFieldValue
End If
Next


'Create the xml processing instruction.
Set objPI = objDom.createProcessingInstruction("xml", "version='1.0'")

'Append the processing instruction to the XML document.
objDom.insertBefore objPI, objDom.childNodes(0)


'Save the XML document.
objDom.save strXMLFilePath & "\" & strFileName


'Release all of your object references.
Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
Set objFieldValue = Nothing
Set objattID = Nothing
Set objattTabOrder = Nothing
Set objPI = Nothing
End Function


'Do not break on an error.
On Error Resume Next


'Call the ConvertFormtoXML function, passing in the physical path to
'save the file to and the name that you wish to use for the file.
ConvertFormtoXML "c:","Contact.xml"


'Test to see if an error occurred, if so, let the user know.
'Otherwise, tell the user that the operation was successful.
If err.number <> 0 then
Response.write("Errors occurred while saving your form submission.")
Else
Response.write("Your form submission has been saved.")
End If
Respuesta Responder a este mensaje
#4 Matias Iacono
02/03/2007 - 18:27 | Informe spam
Lo que deberias hacer es copiar un poco la funcion en si.

Fijate que tienes metodos como:

Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot

En este caso, lo que haces es crear la primer estructura del XML.

Por ejemplo:

<?xml .>
<contact>
...
...
</contact>

Todo lo que viene despues sirve para adicionar campos a este contenedor.

Luego tienes: Set objField = objDom.createElement("field")

Esto crea un nuevo campo, donde se setean atributos. Como por ejemplo ID.

Esto hace que quede algo asi:

<field id="..." />

El cual es adicionado dentro de "contact" con la instruccion:

objRoot.appendChild objField

Entonces, si quieres agregar tus propios campos, tienes dos opciones, una es
crear un nuevo grupo como se hace al principio. Cuando se crea contacts.

O, si quieres adicionarlo dentro del mismo contacts, deberias crear llamadas
similares a la de creacion de hijos, antes del for.

Por ejemplo:

Set objWidth = objDom.createElement("Width")
objWidth.Text = "Valor del Width"
objRoot.appendChild objWidth

Y asi repetirlo para la cantidad de campos que quieras adicionar.

Saludos.

Microsoft MVP
Orador Regional INETA


"starbase" wrote:

A ver si ahora queda en un formato inteligible:


Function ConvertFormtoXML(strXMLFilePath, strFileName)

'Declare local variables.
Dim objDom
Dim objRoot
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim x


'Instantiate the Microsoft XMLDOM.
Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True


'Create your root element and append it to the XML document.
Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot


'Iterate through the Form Collection of the Request Object.
For x = 1 To Request.Form.Count

'Check to see if "btn" is in the name of the form element.
'If it is, then it is a button and we do not want to add it
'to the XML document.
If instr(1,Request.Form.Key(x),"btn") = 0 Then

'Create an element, "field".
Set objField = objDom.createElement("field")

'Create an attribute, "id".
Set objattID = objDom.createAttribute("id")

'Set the value of the id attribute equal the the name of
'the current form field.
objattID.Text = Request.Form.Key(x)

'The setAttributeNode method will append the id attribute
'to the field element.
objField.setAttributeNode objattID

'Create another attribute, "taborder". This just orders the
'elements.
Set objattTabOrder = objDom.createAttribute("taborder")

'Set the value of the taborder attribute.
objattTabOrder.Text = x

'Append the taborder attribute to the field element.
objField.setAttributeNode objattTabOrder

'Create a new element, "field_value".
Set objFieldValue = objDom.createElement("field_value")

'Set the value of the field_value element equal to
'the value of the current field in the Form Collection.
objFieldValue.Text = Request.Form(x)

'Append the field element as a child of the root element.
objRoot.appendChild objField

'Append the field_value element as a child of the field elemnt.
objField.appendChild objFieldValue
End If
Next


'Create the xml processing instruction.
Set objPI = objDom.createProcessingInstruction("xml", "version='1.0'")

'Append the processing instruction to the XML document.
objDom.insertBefore objPI, objDom.childNodes(0)


'Save the XML document.
objDom.save strXMLFilePath & "\" & strFileName


'Release all of your object references.
Set objDom = Nothing
Set objRoot = Nothing
Set objField = Nothing
Set objFieldValue = Nothing
Set objattID = Nothing
Set objattTabOrder = Nothing
Set objPI = Nothing
End Function


'Do not break on an error.
On Error Resume Next


'Call the ConvertFormtoXML function, passing in the physical path to
'save the file to and the name that you wish to use for the file.
ConvertFormtoXML "c:","Contact.xml"


'Test to see if an error occurred, if so, let the user know.
'Otherwise, tell the user that the operation was successful.
If err.number <> 0 then
Response.write("Errors occurred while saving your form submission.")
Else
Response.write("Your form submission has been saved.")
End If



Respuesta Responder a este mensaje
#5 Oscar Onorato
09/03/2007 - 02:54 | Informe spam
Matías,

¿Conoces de algún link de MS donde se puedan ver tutoriales de XML con ASP
3.0 o VB 6.0?

Gracias y saludos


"Matias Iacono" escribió en el
mensaje news:
Lo que deberias hacer es copiar un poco la funcion en si.

Fijate que tienes metodos como:

Set objRoot = objDom.createElement("contact")
objDom.appendChild objRoot

En este caso, lo que haces es crear la primer estructura del XML.

Por ejemplo:

<?xml .>
<contact>
...
...
</contact>

Todo lo que viene despues sirve para adicionar campos a este contenedor.

Luego tienes: Set objField = objDom.createElement("field")

Esto crea un nuevo campo, donde se setean atributos. Como por ejemplo ID.

Esto hace que quede algo asi:

<field id="..." />

El cual es adicionado dentro de "contact" con la instruccion:

objRoot.appendChild objField

Entonces, si quieres agregar tus propios campos, tienes dos opciones, una


es
crear un nuevo grupo como se hace al principio. Cuando se crea contacts.

O, si quieres adicionarlo dentro del mismo contacts, deberias crear


llamadas
similares a la de creacion de hijos, antes del for.

Por ejemplo:

Set objWidth = objDom.createElement("Width")
objWidth.Text = "Valor del Width"
objRoot.appendChild objWidth

Y asi repetirlo para la cantidad de campos que quieras adicionar.

Saludos.

Microsoft MVP
Orador Regional INETA


"starbase" wrote:

> A ver si ahora queda en un formato inteligible:
>
>
> Function ConvertFormtoXML(strXMLFilePath, strFileName)
>
> 'Declare local variables.
> Dim objDom
> Dim objRoot
> Dim objField
> Dim objFieldValue
> Dim objattID
> Dim objattTabOrder
> Dim objPI
> Dim x
>
>
> 'Instantiate the Microsoft XMLDOM.
> Set objDom = server.CreateObject("Microsoft.XMLDOM")
> objDom.preserveWhiteSpace = True
>
>
> 'Create your root element and append it to the XML document.
> Set objRoot = objDom.createElement("contact")
> objDom.appendChild objRoot
>
>
> 'Iterate through the Form Collection of the Request Object.
> For x = 1 To Request.Form.Count
>
> 'Check to see if "btn" is in the name of the form element.
> 'If it is, then it is a button and we do not want to add it
> 'to the XML document.
> If instr(1,Request.Form.Key(x),"btn") = 0 Then
>
> 'Create an element, "field".
> Set objField = objDom.createElement("field")
>
> 'Create an attribute, "id".
> Set objattID = objDom.createAttribute("id")
>
> 'Set the value of the id attribute equal the the name of
> 'the current form field.
> objattID.Text = Request.Form.Key(x)
>
> 'The setAttributeNode method will append the id attribute
> 'to the field element.
> objField.setAttributeNode objattID
>
> 'Create another attribute, "taborder". This just orders the
> 'elements.
> Set objattTabOrder = objDom.createAttribute("taborder")
>
> 'Set the value of the taborder attribute.
> objattTabOrder.Text = x
>
> 'Append the taborder attribute to the field element.
> objField.setAttributeNode objattTabOrder
>
> 'Create a new element, "field_value".
> Set objFieldValue = objDom.createElement("field_value")
>
> 'Set the value of the field_value element equal to
> 'the value of the current field in the Form Collection.
> objFieldValue.Text = Request.Form(x)
>
> 'Append the field element as a child of the root element.
> objRoot.appendChild objField
>
> 'Append the field_value element as a child of the field elemnt.
> objField.appendChild objFieldValue
> End If
> Next
>
>
> 'Create the xml processing instruction.
> Set objPI = objDom.createProcessingInstruction("xml", "version='1.0'")
>
> 'Append the processing instruction to the XML document.
> objDom.insertBefore objPI, objDom.childNodes(0)
>
>
> 'Save the XML document.
> objDom.save strXMLFilePath & "\" & strFileName
>
>
> 'Release all of your object references.
> Set objDom = Nothing
> Set objRoot = Nothing
> Set objField = Nothing
> Set objFieldValue = Nothing
> Set objattID = Nothing
> Set objattTabOrder = Nothing
> Set objPI = Nothing
> End Function
>
>
> 'Do not break on an error.
> On Error Resume Next
>
>
> 'Call the ConvertFormtoXML function, passing in the physical path to
> 'save the file to and the name that you wish to use for the file.
> ConvertFormtoXML "c:","Contact.xml"
>
>
> 'Test to see if an error occurred, if so, let the user know.
> 'Otherwise, tell the user that the operation was successful.
> If err.number <> 0 then
> Response.write("Errors occurred while saving your form submission.")
> Else
> Response.write("Your form submission has been saved.")
> End If
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida