2014-11-03 51 views
0

我有一个html文件,它使用javascript读取xml文件并将xsl文件应用于该文件以输出特定关键字出现次数的计数XML文件和显示在HTML页面上的数量。我想从2个独立的xml文件中获得这些关键字的计数。我会怎么做呢?使用xsl和javascript显示xml文件中计算的关键字的总和

这里是我的javascript:

function transform1() 
{ 
    var xdoc1 = emilygfinalreadxml("xml/cleveland-browns-news.xml") ; 
    var xslt1 = emilygfinalreadxml("xsl/browns-keywords.xsl"); 
    var result = emilygfinalrunTransform(xdoc1,xslt1); 
    var resultDiv = document.getElementById("browns-keywords"); 
    resultDiv.innerHTML = result; 
} 

function clearDivs1() 
{ 
    var resultDiv = document.getElementById("browns-keywords"); 
    resultDiv.innerHTML = ""; 
} 

,这里是我的XSL来计算关键字的数量:

<div> 
     Number of times "quarterback" is used: <xsl:value-of select="count(//*[contains(text(), 'quarterback')])"/> 
</div> 
<div> 
     Number of times "Cleveland" is used: <xsl:value-of select="count(//*[contains(text(), 'Cleveland')])"/> 
</div> 
</xsl:template> 

谢谢您的帮助!

回答

0

试试这个:

<div> 
    <xsl:text>Number of times "quarterback" is used: </xsl:text><xsl:value-of select="count(//text()[contains(., 'quarterback')])"/> 
</div> 
<div> 
    <xsl:text>Number of times "Cleveland" is used: </xsl:text><xsl:value-of select="count(//text()[contains(., 'Cleveland')])"/> 
</div> 

在这里,我使用XSLT和XML的方法,尝试调用输入直通的JavaScript。

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:variable name="varDoc1" select="document('Text1.xml')"/> 
<xsl:variable name="varDoc2" select="document('Text2.xml')"/> 

<xsl:template match="@*|node()"> 
    <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> 
</xsl:template> 

<xsl:template match="/"> 
    <div> 
     <xsl:text>Number of times "quarterback" is used: </xsl:text> 
     <xsl:value-of select="count($varDoc1//text()[contains(., 'quarterback')]) + count($varDoc2//text()[contains(., 'quarterback')])"/> 
    </div> 

    <div> 
     <xsl:text>Number of times "Cleveland" is used: </xsl:text> 
     <xsl:value-of select="count($varDoc1//text()[contains(., 'Cleveland')]) + count($varDoc2//text()[contains(., 'Cleveland')])"/> 
    </div> 
</xsl:template> 

</xsl:stylesheet> 

Text1.xml(输入1):

<article>Cleveland 
<para-first>The Cleveland-system and quarterback</para-first> 
<para>The <i>Cleveland-system</i></para> 
<para>The <i><b>Cleveland-system</b></i> and quarterback.</para> 
</article> 

Text1.xml(输入2):

<article>quarterback 
<para-first>The Cleveland-system and quarterback</para-first> 
<para>The <i>Cleveland-system</i></para> 
<para>The <i><b>Cleveland-system</b></i> and quarterback.</para> 
</article>