我使用PythonElementTree模块来操作HTML。 我想强调某些词,我目前的解决方案是:
for e in tree.getiterator():
for attr in 'text', 'tail':
words = (getattr(e, attr) or '').split()
change = False
for i, word in enumerate(words):
word = clean_word.sub('', word)
if word.lower() in glossary:
change = True
words[i] = word.replace(word, '<b>' + word + '</b>')
if change:
setattr(e, attr, ' '.join(words))
上面检查了每个元素的文本,并强调了它找到的重要单词。 但是,它通过在文本属性中嵌入HTML标记来实现这一点,在呈现时该标记被转义,因此我需要使用以下内容进行反击:
^{pr2}$这让我很不舒服,所以我想好好做。 但是,为了嵌入一个新元素,我需要在“text”和“tail”属性之间切换,以便突出显示的文本出现在相同的位置。当迭代如上所述时,这将非常棘手。在
如果您能给我们一些建议,我们将不胜感激。我肯定在API中我遗漏了一些东西!在
尽管ElementTree对于大多数XML处理任务来说非常容易使用,但是对于混合内容也不方便。我建议使用DOM解析器:
我还使用regexp来拆分单词,以避免它们粘在一起:
^{pr2}$您还可以使用xslt和自定义xpath函数来完成此操作。在
下面是一个例子。但还需要一些额外的工作来处理文本中的空白,例如,在处理文本时,还需要一些额外的工作。在
鉴于此输入:
词汇表包含两个单词:some,bold
则示例输出为:
^{pr2}$这是代码,我也贴在了http://bkc.pastebin.com/f545a8e1d
相关问题 更多 >
编程相关推荐