Ahora quiero mostrarselo al usuario de forma bonita y he visto lo de las XSL. He de decir que no se mucho sobre ello pero bueno...
MIS PROBLEMAS:
1-> ¿Como se aplica una XSL a un XML sin alterar este? Esto lo pregunto proque he visto que añadiendo una linea a XML:
Código HTML:
<?xml-stylesheet type="text/xsl" href="C:\Proyectos\FirmaFacturae\prueba.xsl"?>
He estado mirando y he visto que existen transformadores como lo que hace en esta página:
http://www.desarrolloweb.com/articulos/2304.php
¿Que os parece? ¿Esto no modifica mi XML y me permite visualizarlo?
2 -> Al aplicar una xsl a mi xml de factura añadiendo manualmente la linea del estilo me aparece los datos en formato texto lineal sin el formato que les he puesto yo sin embargo si modifco el XML de mi efactura quitando el prefijo fe: de la etiqueta primera <fe:Facturae ..> y dejandolo así: <Facturae ...> ya va bien. Lo podeis ver en esta página:
http://www.w3schools.com/xsl/tryxslt...file=cdcatalog
poniendo lo siguiente:
XML:
Código HTML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <fe:Facturae xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:fe="http://www.facturae.es/Facturae/2009/v3.2/Facturae"> <FileHeader> <SchemaVersion>3.2</SchemaVersion> <Modality>I</Modality> <InvoiceIssuerType>EM</InvoiceIssuerType> <Batch> <BatchIdentifier>Borrador-</BatchIdentifier> <InvoicesCount>1</InvoicesCount> <TotalInvoicesAmount> <TotalAmount>757.69</TotalAmount> </TotalInvoicesAmount> <TotalOutstandingAmount> <TotalAmount>757.69</TotalAmount> </TotalOutstandingAmount> <TotalExecutableAmount> <TotalAmount>757.69</TotalAmount> </TotalExecutableAmount> <InvoiceCurrencyCode>EUR</InvoiceCurrencyCode> </Batch> </FileHeader> </fe:Facturae>
Código HTML:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" /> <xsl:template match="Facturae/FileHeader"> <html> <body> <h2>Cabecera Factura</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Modalidad</th> <th>Idfactura</th> </tr> <tr> <td><xsl:value-of select="Modality"/></td> <td><xsl:value-of select="Batch/BatchIdentifier"/></td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet>
GRACIAS
PD: También estoy probando el XSL "oficial" del gobierno pero no me va... En Mozilla me sale texto plano y en IE8 no sale nada. Lo he sacado de esta página
http://olea.org/factura-e/factura-e-xslts/
PDD: ¿A que soy complicada?
---EDITADO--
Hola si en vez de poner
<xsl:template match="Facturae/FileHeader">
Pongo:
<xsl:template match="FileHeader">
Me va bien en el Firefox y el IExplorer con la página esa de W3 pero si lo pongo añadiendo manualmente la linea del estilo el IE lo muestra bien pero Firefox pasa de mi :(
¡QUE LIO!