我有一个带有单词和定义的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>
如何编写此代码的部分。
我这几天一直在努力奋斗。请帮我! 提前谢谢!
答案 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>
如果需要任何详细信息,请与我联系