Cómo aplicar una transformación XSL de un documento XML a otro mediante Visual C++ .NET o Visual C++ 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 815653 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Para una Microsoft Visual C# versión de este artículo, consulte 307322.

Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 300929.

Este artículo hace referencia a los siguientes espacios de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • System.XML
  • System.Xml.xsl

En esta tarea

Resumen

Este artículo paso a paso describe cómo aplicar una transformación de XSL (Extensible Stylesheet Language) (XSLT) a un documento XML mediante el uso de la clase XslTransform para crear un nuevo documento XML. XSL es un lenguaje basado en XML que está diseñado para transformar un documento XML en otro documento XML o para transformar un documento XML en cualquier otro documento estructurado.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005
  • Tutoriales del Kit de desarrollo de software (SDK) de Microsoft .NET
En este artículo se supone que está familiarizado con los temas siguientes:
  • Terminología de XML
  • Crear y leer un archivo XML
  • Sintaxis de lenguaje de ruta XML (XPath)
  • XSL

Pasos para crear el ejemplo

Este ejemplo utiliza dos archivos llamados Books.xml y Books.xsl. Puede crear sus propios archivos Books.XML y Books.xsl o puede utilizar los archivos de ejemplo que se incluyen con el Kit de desarrollo de software (SDK) de .NET tutoriales. Copie los archivos Books.XML y Books.xsl a la carpeta donde crear este proyecto. Puede encontrar estos archivos en la carpeta siguiente:
\Archivos de programa\Microsoft Visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
  1. En Visual Studio. NET, cree una nueva aplicación de C++ administradas proyecto.

    Nota En Visual Studio 2005, cree una nueva aplicación de consola CLR.
  2. Agregue el código siguiente para agregar una referencia al espacio de nombres System.XML :
    #using <System.XMl.Dll>
  3. Especifique la instrucción using en el XML y los espacios de nombres Xsl para que no es necesario calificar declaraciones en esos espacios de nombres más adelante en el código. Utilizar la instrucción using antes de cualquier otras declaraciones
    using namespace System::Xml;
    using namespace System::Xml::Xsl;
    
  4. Declare las variables apropiadas y, a continuación, declare un objeto XslTransform para transformar documentos XML.
    XslTransform* myXslTransform;
    
  5. Cree un nuevo objeto XslTransform . La clase XslTransform es un procesador XSLT que implementa la recomendación de versión 1.0 de XSLT.
    myXslTransform = new XslTransform();
  6. Utilice el método Load para cargar el objeto XslTransform con la hoja de estilos. Esta hoja de estilos transforma los detalles del archivo Books.xsl en una lista de libros ISBN. myXslTransform
    myXslTransform->Load(S"books.xsl");
    
  7. Llame al método Transform para iniciar la transformación, pasando el origen de XML documento y el código XML transformado documento nombre. myXslTransform
    myXslTransform->Transform(S"books.xml", S"ISBNBookList.xml");
    
  8. Genere y ejecute el proyecto. Puede ver el ISBNBookList.xml archivo en su carpeta de archivo del proyecto.

Código completo del ejemplo

// This is the main project file for VC++ application project 
// generated using an Application Wizard.

#include "stdafx.h"

#using <mscorlib.dll>
#using <System.XMl.Dll>
#include <tchar.h>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Xsl;


// This is the entry point for this application
int _tmain(void)
{
    XslTransform* myXslTransform;
    myXslTransform = new XslTransform();
    myXslTransform->Load(S"books.xsl");
    myXslTransform->Transform(S"books.xml", S"ISBNBookList.xml");

    return 0;
}
Nota Debe agregar la opción de compilador de common language runtime soporte (/ CLR: oldSyntax) en Visual C++ 2005 para compilar correctamente el ejemplo de código anterior. Para agregar la opción de compilador de common language runtime compatibilidad en Visual C++ 2005, siga estos pasos:
  1. Haga clic en proyecto y, a continuación, haga clic en <ProjectName> propiedades .

    Nota <ProjectName> es un marcador de posición para el nombre del proyecto.
  2. Expanda Propiedades de configuración y, a continuación, haga clic en General .
  3. Haga clic para seleccionar compatible con Common Language Runtime, sintaxis antigua (/ CLR: oldSyntax) en la configuración de proyecto compatibilidad con Common Language Runtime en el panel derecho, haga clic en Aplicar y, a continuación, haga clic en Aceptar .
Para obtener más información acerca de common language runtime admite (opción del compilador), visite el siguiente sitio Web de Microsoft:
/ clr (Common Language Runtime Compilation)
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
Estos pasos se aplican el artículo completo.
Nota : al compilar por encima del código de Visual C++ .NET 2003 , puede recibir una advertencia del compilador C4996 . Esto es debido a 'System:: Xml::Xsl::XslTransform::Transform' está declarado en desuso.
Utilice el siguiente código para que no puede obtener advertencia del compilador C4996.

Reemplazar : myXslTransform
myXslTransform->Transform(S"books.xml", S"ISBNBookList.xml");

con myXslTransform
myXslTransform->Transform(S"books.xml", S"ISBNBookList.xml", 0);

Referencias

Para obtener más información acerca de la clase XslTransform , consulte la biblioteca de clases de Microsoft .NET Framework siguiente documentación:
Para obtener más información acerca de la clase XslTransform con el objeto XslTransform , consulte el siguiente Microsoft del programador de .NET Framework guía documentación:
Para una comparación práctica de XSLT y ASP.NET, consulte la columna de MSDN Online Voices Extreme XML siguiente:
Para obtener más información acerca de XML en. NET, consulte la "XML en. NET: .NET Framework XML Classes and C# Offer Simple, Scalable Data Manipulation" artículo de MSDN Magazine en el siguiente sitio Web de Microsoft:
Para obtener información más general acerca de Visual C++ .NET o XML en. NET, vea los siguientes grupos de noticias de Usenet:

Propiedades

Id. de artículo: 815653 - Última revisión: miércoles, 14 de noviembre de 2007 - Versión: 6.3
La información de este artículo se refiere a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard
  • Microsoft Visual C++ .NET 2002 Standard
Palabras clave: 
kbmt kbhowtomaster kbxml kbhowto KB815653 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 815653

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com