Weblogs Código

RecorteX

» xml
73 usuarios y 243 recortes de código
Usuario

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

RSS
Recortes: 13

Etiquetas relacionadas:
VBnet
java
csharp
html
xhtml
jdbc
jstl
rss

Remover declaracion de xml

xml es XmlDocument

 
foreach(XmlNode n in xml.ChildNodes)
{ 
    if (n.NodeType == XmlNodeType.XmlDeclaration)
       n.ParentNode.RemoveChild(n);
}
 

XMLtoDT

 
    Private Function XMLtoDT(ByVal xml As String) As DataTable
        Dim dataSet As DataSet = New DataSet
        Dim reader As New System.Xml.XmlTextReader(New StringReader(xml))
        dataSet.ReadXml(reader)
        If dataSet.Tables.Count = 0 Then
            Return New DataTable
        Else
            Return dataSet.Tables(0)
        End If
    End Function
 

Transformacion en memoria XSL

Con este código, para la transformación solo necesitamos llamarla mandándole un string con el contenido, otro string con el contenido del xsl y “Me.GetType().Assembly.Evidence” y regresará un string con el contenido de la transformación.

 
    Public Function ApplyXMLTransform(ByVal xslSDoc As String, ByVal xmlSDoc As String, ByVal evidence As System.Security.Policy.Evidence) As string
        Dim xmlDoc As XmlTextReader = New XmlTextReader(New StringReader(xmlSDoc))
        Dim xslDoc As XmlTextReader = New XmlTextReader(New StringReader(xslSDoc))
        Dim res As New Xml.XmlDocument
        Dim xslt As New Xml.Xsl.XslTransform
        xslt.Load(xslDoc, Nothing, evidence)
        res.Load(xslt.Transform(New Xml.XPath.XPathDocument(xmlDoc), Nothing, New Xml.XmlUrlResolver))
        Return res.OuterText
    End Function
 
 
        public string ApplyXMLTransform(string xslSDoc, string xmlSDoc , System.Security.Policy.Evidence evidence) 
        {
            XmlTextReader xmlDoc = new XmlTextReader(new StringReader(xmlSDoc));
            XmlTextReader xslDoc = new XmlTextReader(new StringReader(xslSDoc));
            XmlDocument res = new XmlDocument();
            XslTransform xslt = new XslTransform();
            xslt.Load(xslDoc, null, evidence);
            res.Load(xslt.Transform(new XPathDocument(xmlDoc), null, new XmlUrlResolver()));
            return res.OuterXml;
        }
 
        public string ApplyXMLTransform(string xslSDoc, string xmlSDoc)
        {
            return this.ApplyXMLTransform (xslSDoc, xmlSDoc, this.GetType().Assembly.Evidence); 
        }
 

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" />
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin