XSL - pasar por parametro desde saxon al xsl

   
Vista:

pasar por parametro desde saxon al xsl

Publicado por dayni (11 intervenciones) el 12/04/2010 20:18:53
Tengo un xsl que construí pero este puede aplicarse a un xml determinado el cual lo cargo pasándole un parámetro y dándole la dirección cuando lo pongo directo no hay problema
<xsl:param name="dirxml" select="document('C:\Documents and Settings\dayni\Escritorio\xmsl con los que estoy trabajando\XMLdata.xml')/metadatos"/>
pero lo que quiero es utilizar el procesador saxon y pásale por parámetro la dirección
source=<xml-source>&style=<xsl-stylesheet>&nombreparametro=http://localhost/source.xml
lo he probado de varias formas
en el xsl En el saxo
xsl:param name="dirxml" &nombreparametro= document(http://localhost/source.xml)
xsl:param name="dirxml" select=" document('')" &nombreparametro= http://localhost/source.xml
Y otras

Y todas las veces me da el error
type Informe de estado
mensaje Required item type of first operand of '/' is node(); supplied value has item type xs:string
descripción El servidor encontró un error interno (Required item type of first operand of '/' is node(); supplied value has item type xs:string) que hizo que no pudiera rellenar este requerimiento.
Si alguien tiene algona idea… Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:pasar por parametro desde saxon al xsl

Publicado por dayni (11 intervenciones) el 14/04/2010 15:10:01
ya resolvi cambie en el xsl
<xsl:param name="dirxsd"/>
<xsl:param name="d" select="document($dirxsd)"/>
entonces ya puedo pasarle la dirección por el parametro dirxsd en el saxon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:pasar por parametro desde saxon al xsl

Publicado por jorge (1 intervención) el 16/06/2010 03:09:31
hola dainy:
mi problema era similar al tuyo yo quria pasar por parametro a la trasformacion varios documentos xml. lo que hice fue crear unos objetos XdmNode de saxon y pasarlos como parametro esto es posivle ya que la clase XdmNode hereda de XdmValue ojala te ayude esto a mi me funciona bien. aqui te dejo el codigo para que le des una ojeada.

public void Transform(XmlDocumet docXml, XmlDocument xml_1, XmlDocument XslDoc, XmlDocument xml_2 )
{
Processor proces = new Processor();
XdmNode xml_Input = proces.NewDocumentBuilder().Build(docXml);
XdmNode xsl_Doc = proces.NewDocumentBuilder().Build(XslDoc);

XdmNode xdm_1 = proces.NewDocumentBuilder().Build(xml_1);
XdmNode xdm_2 = proces.NewDocumentBuilder().Build(xml_2);

XsltTransformer transformer = proces.NewXsltCompiler().Compile(xslDoc).Load();
transformer.InitialContextNode = xml_Input;

transformer.SetParameter(QName.FromClarkName("xml_pers"), xdm_1);
transformer.SetParameter(QName.FromClarkName(xml_trans), xdm_2);

Serializer ser = new Serializer();
ser.SetOutputFile(Console.Out.ToString());
transformer.Run(ser);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar