J'ai un document XML simple qui contient des informations sur l'image. J'ai besoin de le transformer en HTML - simple, non? Cependant, quand j'utilise le XSL ci-dessous, il gonfle avec l'erreur "Impossible d'écrire un noeud d'attribut quand aucun tag de début d'élément est ouvert." Je ne peux pas voir où est la balise ouverte - des idées?Comment ajoutez-vous une image?
XML:
<root> <HeaderText> <HeaderText>Dan Testing</HeaderText> </HeaderText> <Image> <img width="100" height="100" alt="FPO lady" src="/uploadedImages/temp_photo_small.jpg"/> </Image> <BodyText> <p>This is a test of the body text<br /></p> </BodyText> <ShowLinkArrow>false</ShowLinkArrow> </root>
XSL:
<xsl:stylesheet version="1.0" extension-element-prefixes="msxsl" exclude-result-prefixes="msxsl js dl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:js="urn:custom-javascript" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:dl="urn:datalist"> <xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/> <xsl:template match="/" xml:space="preserve"> <img> <xsl:attribute name="width"> 100 </xsl:attribute> <xsl:attribute name="height"> 100 </xsl:attribute> <xsl:attribute name="class"> CalloutRightPhoto </xsl:attribute> <xsl:attribute name="src"> <xsl:copy-of select="/root/Image/node()"/> </xsl:attribute> </img> </xsl:template> </xsl:stylesheet>
J'essaie de résoudre quelque chose de très similaire. J'ai besoin de générer des rapports de mots à partir d'une application PHP pour ce que je suis en train de transformer XML avec XSLT. La solution ci-dessus fonctionne-t-elle pour générer des documents Word 2007? – ivantxo
Non, ce qui précède n'est pas pour générer des documents Word, mais simplement pour créer une balise à partir de l'entrée XML donnée. Si vous voulez générer des documents Word en utilisant XSLT alors bonne chance, car c'est très complexe. – samjudson