- 締切済み
自動的にリンクを貼る・・・
XMLのテキスト部分をXSLにvalue-ofで呼び出した時 テキストの中にhttp://で始まる英数字のかたまりだけそこにリンクが貼られるようにその部分だけを抽出し、<a href="http://"></a>タグを自動的に付け加えるってことは可能でしょうか? 可能ならば記述方法わかる方いらっしゃいますか? ----------------------------------- =XML= <a>タイトル</a> <b>テキストhttp://~テキスト</b> xslでhttp://を含む英数字の塊に自動的に<a>タグを付ける(疑問の部分) ↓ =HTML= <html> <body> <h1>タイトル</h1> テキスト<a href="http://~">http://~</a>テキスト </body> </html>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- potedora
- ベストアンサー率47% (66/140)
XMLファイルを <?xml version="1.0" encoding="UTF-8"?> <data> <a>タイトル</a> <b>テキスト1http://www.goo.ne.jpテキスト2</b> </data> XSLファイルを <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="utf-8" indent="yes" /> <xsl:template match="/"> <html> <body> <xsl:apply-templates select="data" /> </body> </html> </xsl:template> <xsl:template match="data"> <h1><xsl:value-of select="a" /></h1> <xsl:value-of select="substring-before(b,'http://')"/> <xsl:element name="a"> <xsl:attribute name="href"><xsl:value-of select="concat(substring-before(substring-after(b,'http://'),'.jp'), '.jp')"/></xsl:attribute> <xsl:value-of select="concat(substring-before(substring-after(b,'http://'),'.jp'), '.jp')"/> </xsl:element> <xsl:value-of select="substring-after(b,'.jp')"/> </xsl:template> </xsl:stylesheet> でできますが、あくまでもhttp://の区切りの最後が.jpの 場合のみになってしまいますので、終端記号を決める 必要があります。