2010-12-07 15 views
0

J'ai un flux RSS de base mais j'ai des images dans la description. Est-il possible de sélectionner le imr src avec XSLT?Sélection de Image Src à partir de XML

<description> 
<![CDATA[ 
<img src="http://www.sitename.com/news/wp-content/uploads/2010/12/MyImage31-150x150.jpg"/> 
Content is here. 
]]> 
</description> 
+0

Je pense que ce genre de question mérite son propre type de réponse «ne pas analyser (X) HTML avec RegExp» ... –

+0

Il n'y a pas d'élément 'image' ayant un attribut' src' dans votre échantillon d'entrée. Les sections CDATA ne sont qu'un texte non analysé. Essayez de ne pas utiliser des données non analysées en tant que données analysables, s'il vous plaît. –

Répondre

0

Cette réponse n'est pas complète, mais elle est trop longue pour être utilisée comme commentaire. Ce qui suit sélectionne l'URL de l'exemple donné (si chaque description ne contient qu'un seul img Sinon, vous pouvez faire un modèle distinct et appeler récursive pour sélectionner tous les img s.):

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 
    <xsl:template match="/description/text()"> 
     <xsl:value-of 
      select="substring-before(substring-after(., '&lt;img src=&quot;'), '&quot;/>')" 
      disable-output-escaping="yes"/> 
    </xsl:template> 
</xsl:stylesheet> 

Je pense qu'il ya un moyen pour créer un ensemble de nœuds à partir de la chaîne (mais je ne sais pas, vous pouvez faire des recherches dessus), vous pouvez donc créer un ensemble de nœuds à partir de <img .../> et obtenir la valeur d'attribut src.

+0

De toute façon, vous pouvez développer à ce sujet. Je suis un peu perdu sur la façon de faire ça. – Chad

+0

NM Je l'ai eu. Je vous remercie! – Chad

+0

Vous avez écrit: * Je pense qu'il existe un moyen de faire un ensemble de nœuds à partir de la chaîne *. Oui, il s'appelle analyseur. La fonction d'extension 'node-set()' fonctionne uniquement avec Result Tree Fragment. Le mécanisme DOE n'aidera pas non plus: un RTF contenant un nœud de texte serait converti en un nœud de nœud singleton, il ne serait pas analysé. –