2010-06-15 2 views
0

Supposons que j'ai un document XML J'ai une balise contenant du texte html. Je veux afficher ce texte avec le xsl. La balise html est htmlInfo.Comment puis-je mettre un texte html dans une étiquette avec xsl?

Je pensais que je peux mettre cela dans une étiquette (dans le xsl), mais cela ne fonctionne pas. Que puis-je faire?

+0

Pourriez-vous fournir des exemples xml et xsl? – Peter

+0

le Loo xml comme celui-ci

xzxzxzxzxz

hghghgh

Je veux afficher le contenu de la htmlInfo dans mon xsl – joe

Répondre

1

Vous aurez probablement l'encoder dans votre XML, il ressemble à ceci:

<tableInfo> 
    <id>1</id> 
    <htmlInfo> 
     &lt;html xmlns='w3.org/1999/xhtml'&gt;&lt;head &gt;&lt;/head&gt; &lt;body&gt;&lt;p&gt;xzxzxzxzxz&lt;/p&gt; &lt;p&gt;hghghgh&lt;/p&gt; &lt;/body&gt;&lt;/html&gt; 
    </htmlInfo> 
<tableInfo> 

Donc tous < caractères ont été remplacés par &lt; et tous> caractères ont été remplacés par &gt;. Un & doit être &amp; ... Si vous utilisez .NET, n'utilisez pas String.Replace, mais utilisez l'espace de noms System.Xml pour créer correctement un objet XmlDocument. Il fera l'encodage pour vous. Par exemple, dans VB.Net:

Dim stringBuilder As New StringBuilder() 
Dim stringWriter As New StringWriter(stringBuilder) 
Dim xmlTextWriter As New XmlTextWriter(stringWriter) 

xmlTextWriter.WriteStartElement("item") 
xmlTextWriter.WriteAttributeString("id", id.ToString()) 
xmlTextWriter.WriteAttributeString("key", key) 
xmlTextWriter.WriteValue(value) 
xmlTextWriter.WriteEndElement() 

Return stringBuilder.ToString() 

Ensuite, votre XSL devrait être capable de le manipuler, et si vous la sortie transformez un fichier HTML par exemple, le &lt; et d'autres choses doivent être correctement '< 'dans la sortie, et votre HTML devrait être valide.

+0

j'ai utilisé xmlDocument. mais comment puis-je encoder le HTML en XML. et quand? – joe

+0

Quelle méthode utilisez-vous sur XmlDocument pour écrire la balise htmlInfo? – Peter

+0

xsl.Load (xslUrl); // Transformer le fichier XML XPathNavigator navigator = xmlDs.DocumentElement.CreateNavigator(); StringBuilder sbTransHtml = new StringBuilder(); StringWriter strwTransHtml = new StringWriter (sbTransHtml); XmlTextWriter xmltwTransHtml = nouveau XmlTextWriter (strwTransHtml); xsl.Transform (navigateur, null, xmltwTransHtml); return strwTransHtml.ToString(); – joe

Questions connexes