字符串替换功能 - 如果更换如何跳过?

时间:2011-06-19 17:47:13

标签: javascript string replace

我有一个带有单词和定义的xml文件。

<word definition="this is my definition">myWord</word>

当我的html页面有myWord时,我想将myWord更改为一个链接,其标题包含我的单词的定义。

基本上就是这样的东西;

myWord变成

<a href="#" title="this is my definition">myWord </a> 

从xml链接我正在使用此代码。但是这段代码链接了几次,甚至定义中的单词也被链接起来。所以我想检查它是否已被链接,如果是,请跳过。

x=xmlDoc.getElementsByTagName('word');
for (i=0;i' + x.item(i).attributes[0].textContent + ': ' + x.item(i).attributes[1].textContent + '\', this);" onMouseOut="doClear();">' +x[i].childNodes[0].nodeValue + '';
    replacer(text, linked);     

我有一个替换功能

function replacer(oldstring, newstring) {
 if(oldstring inside replaced tag)
  {
       //skip replacement
  }

 else
  {
    document.body.innerHTML = document.body.innerHTML.replace(/oldstring/, newstring);
  }
}


如果我的oldstring在

中,我想跳过替换
<span class="replaced">Replaced text</span>

如何编写此代码的部分。

我这几天一直在努力奋斗。请帮我! 提前谢谢!

1 个答案:

答案 0 :(得分:1)

XSLT将是执行此操作的更好方法:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="*|@*|text()">
       <xsl:copy>
          <xsl:apply-templates select="*|@*|text()"/>
       </xsl:copy>
    </xsl:template>
    <xsl:template match="word">
        <a href="#" title="<xsl:copy-of select="data(@description)"/>">
          <xsl:copy-of select="data(.)"/></a>
    </xsl:template>
</xsl:stylesheet>

如果需要任何详细信息,请与我联系