2012-01-20 1 views
0

Я пытаюсь сделать URL-адрес в XML-файле, отображаемом на HTML-странице, в качестве интерактивной гиперссылки, а не только URL-адреса, отображаемого в виде текста.Использование XSL для отображения гиперссылки из XML на странице HTML

Как это можно сделать? Я уверен, что я сделал это не за горами ...

Вот что код выглядит следующим образом:

XML

<linkedin> 
<discussion> 
    <topic>This is the discussion name</topic> 
    <content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ligula mi, convallis eget iaculis id, euismod non arcu. Morbi porta.</content> 
    <url>http://www.google.com</url> 
</discussion> 
</linkedin> 

XSL

<xsl:for-each select="linkedin/discussion"> 
    <h3><xsl:value-of select="topic"/></h3> 
    <p><xsl:value-of select="content"/></p> 
    <p><a><xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute><xsl:value-of select="url"/></a></p> 
    </xsl:for-each> 

и я использую JavaScript в HTML, чтобы извлечь, что в файле XML

<script type="text/javascript"> 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
xmlhttp=new XMLHttpRequest(); 
} 
else 
{// code for IE6, IE5 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("GET","linkedin.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

var x=xmlDoc.getElementsByTagName("discussion"); 
for (i=0;i<x.length;i++) 
{ 
document.write("<p><strong>"); 
document.write(x[i].getElementsByTagName("topic")[0].childNodes[0].nodeValue); 
document.write("</strong></p><p>"); 
document.write(x[i].getElementsByTagName("content")[0].childNodes[0].nodeValue); 
document.write("</p><p>"); 
document.write(x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue); 
} 
document.write("</p>"); 
</script> 

Вот как это выглядит ... URL это просто текст, а не гиперссылка:

enter image description here

+0

Вы используете прилагаемый XSL где угодно? Вам нужна помощь при переключении с вашего текущего решения на XSL или просто на правильное решение? – bububaba

+0

@bububaba Я бы просто хотел, чтобы текущее решение работало правильно. Вы видите что-то неправильно в XML, XSL или HTML? Спасибо – Tim

+0

Прежде всего, я не могу найти, где вы используете XSL, который вы вставили. Кроме того, то, что вам не хватает, это, скорее всего, тег '' с атрибутом 'href' в ваших вызовах' document.write'. – bububaba

ответ

0

решаемая. Сделал JavaScript в моем HTML-коде:

document.write("<p><strong>"); 
document.write(x[i].getElementsByTagName("topic")[0].childNodes[0].nodeValue); 
document.write("</strong></p><p>"); 
document.write(x[i].getElementsByTagName("content")[0].childNodes[0].nodeValue); 
document.write("</p><p>"); 
document.write("</p><p>"); 
document.write("<p><a href='"); 
document.write(x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue); 
} 
document.write("'>Click here to go through to the LinkedIn group</a></p>");