Noticias Weblogs Foros Wiki Código

RecorteX

» xml
303 usuarios y 202 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta xml

RSS
Recortes: 10

Etiquetas relacionadas:
VBnet
java
html
rss
xhtml
jdbc
jstl
csharp

transformación física de xml

transformación física de xml
 
      Private Function paco(ByVal xmlFile As String, ByVal xslFile As String) As String
        Dim archivo As String = "c:\temp.tmp"
        Dim temp As New Xml.XmlDocument
        Dim resolver As XmlUrlResolver = New XmlUrlResolver
        resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
        Dim XSLT As Xsl.XslTransform = New Xsl.XslTransform
        XSLT.Load(xslFile, resolver)
        XSLT.Transform(archivo, archivo, resolver)
        Return ReadFile(archivo)
    End Function
 

Asignar un string a un XmlTextReader

Asignar un string a un XmlTextReader
 
  Dim reader As New System.Xml.XmlTextReader(New System.IO.StringReader("<xmlaleer att1=""/>"))
 

Traer valores atributos de un xml, cuando usa namespaces

Traer valores atributos de un xml, cuando usa namespaces
 
   Private Function GenerarXML(ByVal xmlStr As String, ByVal appendBuffer As String, ByRef strFileName As String) As String
        Dim xmlStrOriginal As String = xmlStr
        Dim xmlDoc As New XmlDocument
        Dim xnav As XPath.XPathNavigator
        Dim mngr As New XmlNamespaceManager(New NameTable)
        mngr.AddNamespace("ns", "http://www.dominio.com/Schemas/Documentos")
        Dim enc As XmlElement
 
        xmlDoc.LoadXml(xmlStr)
        enc = xmlDoc.SelectSingleNode("Nodo1/Nodo2/ns:nsNodo1/ns:nsNodo2", mngr)
        xmlDoc.LoadXml(enc.OuterXml)
        xnav = xmlDoc.CreateNavigator()
        Att1 = xnav.Evaluate("string(/*/@Att1)")
        Att2 = xnav.Evaluate("string(/*/@Att2)")
 
        Return xmlStr
    End Function
 

Transormacion Xsl en VB.net

Este proceso usa un xml y un xsl de entrada y regresa el xml transformado
 
  -----------------------------------------------------------------------------
    <summary>
    Transforma un xml en otro xml
    </summary>
    <param name="txt">un string que contiene el xml origen</param>
    <param name="xslFile">Archivo xsl para la transformacion</param>
    <returns>el xml transformado</returns>
    -----------------------------------------------------------------------------
   Private Function xslTrans(ByVal txt As String, ByVal xslFile As String) As XmlDocument
       Dim xslTran As New XslTransform
       Dim oDocOut As New XmlDocument
       Dim oDoc As New XmlDocument
       Dim oNav As XPath.XPathNavigator
       Dim oXsl As XmlTextReader
       Try
           oXsl = New XmlTextReader(xslFile)
           oDoc.LoadXml(txt)
           oNav = oDoc.CreateNavigator()
           xslTran.Load(oXsl, Nothing, Me.GetType().Assembly.Evidence)
           oDocOut.Load(xslTran.Transform(oNav, Nothing, New Xml.XmlUrlResolver))
       Catch ex As Exception
           Console.Write("Error:" + vbCr + ex.Message)
       End Try
       oDocOut.Normalize()
       Return oDocOut
   End Function
 

Acceso a datos desde tags XML de la JSTL

Esta información siempre se me pierde, así que la dejo por aquí.

Se puede acceder a datos en diferentes ambitos desde la opción select de los tag xml de la JSTL. Ejemplo:
 
  <x:out select="$usuarios/usuario[nombre=$param:nombre]"/>
 
En este ejemplo se accedería al parámetro "nombre" pasado al jsp.

Se puede acceder a los siguientes objetos especiales:

$foo
$param:
$header:
$cookie:
$initParam:
$pageScope:
$requestScope:
$sessionScope:
$applicationScope:

Firefox + RSS

Para que Firefox reconozca automaticamente que el site tiene live bookmarks (o feeds o RSS o...)
solo hay que añadir la línea de código (convenientemente rectificada para quen apunte a nuestro fichero XML

<link rel="alternate" type="application/rss+xml" title="Título RSS" href="http://host/ruta/a/fichero.rss" />

Provee feeds para secciones diferentes

Provee acceso a los feeds de secciones específicas.
 
	<link rel="alternate" type="application/atom+xml" href="http://www.dominio.com/atom/" title="Nombre sitio - Completo" />
	<link rel="alternate" type="application/atom+xml" href="http://www.dominio.com/atom/seccion1/" title="Nombre sitio - Nombre seccion1" />
	<link rel="alternate" type="application/atom+xml" href="http://www.dominio.com/atom/seccion2/" title="Nombre sitio - Nombre seccion2" />
 

Convertir un ResultSet a XML

Esta función convierte un ResultSet en formato XML y lo imprime.
 
public void rs2xml(ResultSet rs,
                  String tabla,
                  String elemento,
                 java.io.Writer out) throws java.io.IOException, SQLException {
    ResultSetMetaData rsmd=rs.getMetaData();
    out.write("<"+tabla+">\n");
    while (rs.next()) {
        out.write("    <"+elemento+">\n");
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
           out.write("        <"+rsmd.getColumnLabel(i).toLowerCase()+"><![CDATA[");
           String var=rs.getString(i);
           if (var!=null) {
                out.write(var);
           }
           out.write("]]></"+rsmd.getColumnLabel(i).toLowerCase()+">\n");
        }
        out.write("    </"+elemento+">\n");
    }
    out.write("</"+tabla+">\n");        
}
 
Recibe el ResultSet, el nombre que le queremos dar al elemento XML root y el nombre que le queremos dar al elemento XML de cada registro.

Crear un fichero XML

El código para generar un documento XML es el siguiente:
 
public void ExportarXML(string filename)
{
	XmlTextWriter writer = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
        
	//Usa indentación por legibilidad
	writer.Formatting = Formatting.Indented;
        
	//Escribe la declaración del XML
	writer.WriteStartDocument();
        
	//Escribe el elemento raiz
	writer.WriteStartElement("persona");
        
	//Escribe los elementos dentro de sus etiquetas
	writer.WriteElementString("nombre", "Emanuel");
	writer.WriteElementString("apellido", "Lopez");
	writer.WriteElementString("nacionalidad", "Argentino");
      
	writer.WriteEndElement();
 
	writer.Flush();
	writer.Close();  
}
 
la salida sera la siguiente
 
<?xml version="1.0" encoding="utf-8"?>
<persona>
  <nombre>Emanuel</nombre>
  <apellido>Lopez</apellido>
  <nacionalidad>Argentino</nacionalidad>
<persona>
 

Parsear un fichero XML

El código mínimo para obtener un document a partir de un fichero XML:
 
javax.xml.parsers.DocumentBuilderFactory dbf = javax.xml.parsers.DocumentBuilderFactory.newInstance();
javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc = db.parse(new java.io.File("c:/ruta/al/fichero.xml"));
 
info@recortex.com - Proyecto: Juanjo Navarro, 2006 - Diseño: Albin