XslTransform.Transform me elimina atributos!!!

02/07/2004 - 13:08 por HOZE\(SMM\) | Informe spam
Hola a todos

Estoy tratando un documento XML con un esquema XSL. A ciertos nodos del
documento XML les asocio una serie de atributos de mi namespace (ed) de la
siguiente manera:

<Data ss:Type="String" ed:Ultimo="1"/>


En el documento xsd añado el namespace:

xmlns:ed="http://pruebas.mias.com/exportar/excel/"

en el XSL hago la siguiente pregunta:

<xsl:if test="@ed:Ultimo=1">
<Interior ss:Color="#D0D0D0" ss:Pattern="Solid"/>
</xsl:if>
<xsl:if test="@ed:Ultimo=0">
<Interior ss:Color="#DFDFDF" ss:Pattern="Solid"/>
</xsl:if>


¡Pero no funciona!, el resultado de la transformación no ha tenido en cuenta
este atributo y ha generado la salida como si nada!

Estoy seguro de que el atributo llega al objeto XslTransform en el documento
xml, pero no entiendo por qué este no los interpreta.

Estoy muy perdido y necesio ayuda, por favor.


El código de la transformación es el siguiente

XslTransform xslt = new XslTransform();

xslt.Load(xslFilePath);

XmlTextReader xr = new XmlTextReader(new StringReader(xmlData));
XPathDocument mydata = new XPathDocument(xr);
System.IO.MemoryStream aMemStr = new System.IO.MemoryStream();
XmlWriter writer = new XmlTextWriter(aMemStr, null);
xslt.Transform(mydata, null, writer, null);
writer.Close();
string strXml = System.Text.Encoding.UTF8.GetString(aMemStr.ToArray());


Gracias
 

Leer las respuestas

#1 skarface
06/07/2004 - 18:45 | Informe spam
trata lo siguiente:
<xsl:if test="@ed:Ultimo=1">


<Interior>
<xsl:attribute name="ss:Color">#D0D0D0</xsl:attribute>

</Interior>
</xsl:if>
<xsl:if test="@ed:Ultimo=0">
<Interior ss:Color="#DFDFDF" ss:Pattern="Solid"/>
</xsl:if>




"HOZE(SMM)" wrote in message
news:
Hola a todos

Estoy tratando un documento XML con un esquema XSL. A ciertos nodos del
documento XML les asocio una serie de atributos de mi namespace (ed) de la
siguiente manera:

<Data ss:Type="String" ed:Ultimo="1"/>


En el documento xsd añado el namespace:

xmlns:ed="http://pruebas.mias.com/exportar/excel/"

en el XSL hago la siguiente pregunta:

<xsl:if test="@ed:Ultimo=1">
<Interior ss:Color="#D0D0D0" ss:Pattern="Solid"/>
</xsl:if>
<xsl:if test="@ed:Ultimo=0">
<Interior ss:Color="#DFDFDF" ss:Pattern="Solid"/>
</xsl:if>


¡Pero no funciona!, el resultado de la transformación no ha tenido en


cuenta
este atributo y ha generado la salida como si nada!

Estoy seguro de que el atributo llega al objeto XslTransform en el


documento
xml, pero no entiendo por qué este no los interpreta.

Estoy muy perdido y necesio ayuda, por favor.


El código de la transformación es el siguiente

XslTransform xslt = new XslTransform();

xslt.Load(xslFilePath);

XmlTextReader xr = new XmlTextReader(new StringReader(xmlData));
XPathDocument mydata = new XPathDocument(xr);
System.IO.MemoryStream aMemStr = new System.IO.MemoryStream();
XmlWriter writer = new XmlTextWriter(aMemStr, null);
xslt.Transform(mydata, null, writer, null);
writer.Close();
string strXml = System.Text.Encoding.UTF8.GetString(aMemStr.ToArray());


Gracias


Preguntas similares