Foros del Web » Programación para mayores de 30 ;) » Programación General »

prblemas al crear xml

Estas en el tema de prblemas al crear xml en el foro de Programación General en Foros del Web. hola a todos: Tengo el siguiente problema, estoy intentando generar un archivo XML a partir de otro XML ayudandome de un XSL. el problema esta ...
  #1 (permalink)  
Antiguo 09/12/2003, 03:01
 
Fecha de Ingreso: julio-2003
Mensajes: 17
Antigüedad: 20 años, 9 meses
Puntos: 0
prblemas al crear xml

hola a todos:
Tengo el siguiente problema, estoy intentando generar un archivo XML a partir de otro XML ayudandome de un XSL. el problema esta en que no se como se hace. lo he intentadado de esta forma,
XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- Siguiente paso va a ser el saber como generar codigo xml a partir de un xml -->
<xsl:template match="/window">
<xsl:variable name="wid">
<xsl:value-of select="@idwin"/>
</xsl:variable>
<xsl:variable name="wtitle">
<xsl:value-of select="title"/>
</xsl:variable>
<xsl:variable name="worient">
<xsl:value-of select="orient"/>
</xsl:variable>
<window id="$wid" title="$wtitle" orient="$worient" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<xsl:apply-templates select="boton"/>
<xsl:apply-templates select="etiqueta"/>
</window>
</xsl:template>
<xsl:template match="boton">
<xsl:variable name="bid">
<xsl:value-of select="@idboton"/>
</xsl:variable>
<xsl:variable name="bclase">
<xsl:value-of select="clase"/>
</xsl:variable>
<xsl:variable name="blabel">
<xsl:value-of select="label"/>
</xsl:variable>
<xsl:variable name="bdefault">
<xsl:value-of select="default"/>
</xsl:variable>
<xsl:variable name="btecla">
<xsl:value-of select="teclacceso"/>
</xsl:variable>
<button id="$bid" class="$bclase" label="$blabel" default="$bdefault" accesskey="$tecla"/>
</xsl:template>
<xsl:template match="etiqueta">
<xsl:variable name="lvalue">
<xsl:value-of select="value"/>
</xsl:variable>
<xsl:variable name="lcontrol">
<xsl:value-of select="control"/>
</xsl:variable>
<label value="$lvalue" control="$lcontrol"/>
</xsl:template>
</xsl:stylesheet>


Y el XML es :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\Documents and Settings\mani14f\Escritorio\pfc\pfcxml\prueba3.xsl "?>
<window xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\mani14f\Escritorio\pfc\pfcxml\prueba2.xsd " idwin="idwin1">
<title>La puta de la variable</title>
<orient>vertical</orient>
<boton idboton="idb1">
<clase>dialog</clase>
<label>miBoton</label>
<default>true</default>
<teclacceso>t</teclacceso>
</boton>
<boton idboton="idb2">
<clase>dialog</clase>
<label>miBoton2</label>
<default>false</default>
<teclacceso>q</teclacceso>
</boton>
<etiqueta>
<value>Hola</value>
<control>idb1</control>
</etiqueta>
</window>


Ya siento me ter tanto codigo, pero sino no me se explicar. espero me hallan entendido la pregunta, si tienen alguna duda me preguntan y yo se la contesto.
En realiadad lo que quiero conseguir es un archivo xul pero éste es xml.
Hay alguna forma con un xsl para escribir en un archivo que hallamos creado?

Gracias a todos.
  #2 (permalink)  
Antiguo 09/12/2003, 08:33
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 22 años
Puntos: 2
No veo claridad... especifica más lo que quieres.. quieres crear un archivo XML apartir de otro XML?.. es decir, quízas más pequeño o más grande o igual?
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639
  #3 (permalink)  
Antiguo 09/12/2003, 09:49
 
Fecha de Ingreso: julio-2003
Mensajes: 17
Antigüedad: 20 años, 9 meses
Puntos: 0
eso es

lo que quiero es dado un archivo xml, con un xsl quiero conseguir en vez de un archivo html, otro que sera xul (xul es en realidad xml) asi que me interesa consegui otro xml.
el problema lo tengo en que el ejemplo dado no me funciona, no se pq. gracias
  #4 (permalink)  
Antiguo 11/12/2003, 11:39
 
Fecha de Ingreso: noviembre-2003
Mensajes: 8
Antigüedad: 20 años, 5 meses
Puntos: 0
pero qual es el problema que está ocurriendo? Recibis algun mensage de error , por ejemplo dentro de XML Spy, o en Java?? Como estas haciendo el parser de xml a otro xml?
  #5 (permalink)  
Antiguo 09/01/2004, 08:00
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Si buscas por Google la cadena xml2xml te salen bastantes ocurrencias

Suerte!
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #6 (permalink)  
Antiguo 13/01/2004, 12:46
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Un Ejemplo

Te pongo un ejemplo que he encontrado (Ejemplo )

Creas un archivo xml que correspondería con tu archivo xml inicial y a partir del cual generarias otro xml:

<?xml version="1.0"?>
Código PHP:
<novedades>
    <
doc tipo="libro"/>
    <
doc tipo="revista"/>
    <
doc tipo="cdrom"/>
    <
doc tipo="cdrom"/>
</
novedades
Ahora crearías el xsl que te transforma ese xml en otro xml distinto:

Código PHP:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:attribute-set name="general">
    <xsl:attribute name="doc_id"/>
    <xsl:attribute name="titulo"/>
  </xsl:attribute-set>
  <xsl:attribute-set name="libro" use-attribute-sets="general">
    <xsl:attribute name="isbn"/>
  </xsl:attribute-set>
  <xsl:attribute-set name="revista" use-attribute-sets="general">
    <xsl:attribute name="issn"/>
  </xsl:attribute-set>
  <xsl:template match="novedades">
    <xsl:element name="formulario">
    <xsl:for-each select="doc">
      <xsl:choose>
        <xsl:when test="@tipo='libro'">
          <xsl:element name="doc" use-attribute-sets="libro"/>
       </xsl:when>
       <xsl:when test="@tipo='revista'">
         <xsl:element name="doc" use-attribute-sets="revista"/>
       </xsl:when>
       <xsl:otherwise>
         <xsl:element name="doc" use-attribute-sets="general"/>
       </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:element>
</xsl:template>
</xsl:stylesheet>
Asignas este xsl a tu xml y abres el xml en el navegador. Et Voilá, debería sacarte por pantalla un xml como el que sigue:

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<formulario>
    <doc doc_id="" titulo="" isbn=""/>
    <doc doc_id="" titulo="" issn=""/>
    <doc doc_id="" titulo=""/>
    <doc doc_id="" titulo=""/>
</formulario>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:39.