当前位置: 首页 > news >正文

dw用设计视图做网站国际新闻直播

dw用设计视图做网站,国际新闻直播,织梦网站模板响应式,大连seo网站在 ElementTree 中,你可以使用 Element 对象的方法来创建新的标签,并将其嵌入到现有的 XML 结构中。下面是一个简单的示例,演示了如何在 ElementTree 文本中嵌入新的标签: 1、问题背景 我正在使用Python ElementTree模块来处理HT…

在 ElementTree 中,你可以使用 Element 对象的方法来创建新的标签,并将其嵌入到现有的 XML 结构中。下面是一个简单的示例,演示了如何在 ElementTree 文本中嵌入新的标签:

在这里插入图片描述

1、问题背景

我正在使用Python ElementTree模块来处理HTML。我想强调某些单词,我目前的解决方案是使用一个循环来遍历tree.getiterator()中的每个元素,然后分别处理’text’和’tail’属性。如果找到要强调的单词,就把它替换为带有标签的相同单词。

但是,这种方法存在两个问题:

  • 它在text属性中嵌入了HTML标签,当渲染时会被转义,因此我需要用代码对标签进行反转义。
  • 它需要移动’text’和’tail’属性,以便强调的文本出现在相同的位置。当我们像上面那样迭代时,这将非常棘手。

2、解决方案

方法一:使用XSLT和自定义XPath函数

from lxml import etreestylesheet = etree.XML("""<xsl:stylesheet version="1.0"xmlns:btest="uri:bolder"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="@*"><xsl:copy /></xsl:template><xsl:template match="*"><xsl:element name="{name(.)}"><xsl:copy-of select="@*" /><xsl:apply-templates select="text()" /><xsl:apply-templates select="./*" /></xsl:element></xsl:template><xsl:template match="text()"><xsl:copy-of select="btest:bolder(.)/node()" /></xsl:template>         </xsl:stylesheet>
""")glossary = ['some', 'bold']def bolder(context, s):results = []r = Nonefor word in s[0].split():if word in glossary:if r is not None:results.append(r)r = etree.Element('r')b = etree.SubElement(r, 'b')b.text = wordb.tail = ' 'results.append(r)r = Noneelse:if r is None:r = etree.Element('r')r.text = '%s%s ' % (r.text or '', word)if r is not None:results.append(r)return resultsdef test():ns = etree.FunctionNamespace('uri:bolder') # register global namespacens['bolder'] = bolder # define function in new global namespacetransform = etree.XSLT(stylesheet)print str(transform(etree.XML("""<html><head></head><body><p>here is some text to bold</p><p>and some more</p></body></html>""")))if __name__ == "__main__":test()

方法二:使用DOM解析器

from xml.dom import minidom
import rews_split = re.compile(r'\s+', re.U).splitdef processNode(parent):doc = parent.ownerDocumentfor node in parent.childNodes[:]:if node.nodeType==node.TEXT_NODE:words = ws_split(node.nodeValue)new_words = []changed = Falsefor word in words:if word in glossary:text = ' '.join(new_words+[''])parent.insertBefore(doc.createTextNode(text), node)b = doc.createElement('b')b.appendChild(doc.createTextNode(word))parent.insertBefore(b, node)new_words = ['']changed = Trueelse:new_words.append(word)if changed:text = ' '.join(new_words)print textparent.replaceChild(doc.createTextNode(text), node)else:processNode(node)

我希望这些解决方案对您有用。

在这个示例中,我们首先创建了一个根元素 root,然后创建了一个子元素 child,并设置了其文本内容。接着,我们创建了一个新的标签 new_tag,并将其嵌入到子元素 child 中。最后,我们将整个 XML 结构写入到文件中。

运行以上代码后,将会生成一个名为 example.xml 的文件,其内容如下:

<root><child>This is some text.<new_tag>New tag content</new_tag></child>
</root>

这就是如何在 ElementTree 文本中嵌入新的标签。你可以根据自己的需求和数据结构,使用类似的方法来创建和嵌入标签。

http://www.hengruixuexiao.com/news/14782.html

相关文章:

  • 成都网站建设哪家专业而且比较便宜北京百度总部电话
  • dw可以用来做网站吗站长工具手机综合查询
  • 网站开发好还要空间吗全网整合营销平台
  • 株洲网站建设和制作新闻最近的新闻
  • 如何让网站长尾关键词有排名网络舆情管控
  • 营销型网站开发营销it培训机构排行榜
  • 网站开发与设计实训报告摘要足球联赛排名
  • wordpress站点标题市场推广和销售的区别
  • 遵义网站推广seo技术中心
  • 网站通知做文献的格式重庆seo排名方法
  • 一个交易网站开发的成本是多少seo外链建设方法
  • 没有注册公司可以建网站吗网站首页排名seo搜索优化
  • 网站首页制作高端快速建站
  • 做网站要求短视频seo询盘系统
  • 温州seo排名seo关键词优化培训
  • 网站优化的基本思想与原则长沙网动网络科技有限公司
  • 邮轮哪个网站是可以做特价企业自建网站
  • 怎么用ps做网站首页图片尺寸品牌运营策划
  • 济宁做网站的公司广东网约车涨价
  • 大连网站开发需要多少钱2023b站免费推广入口游戏
  • wordpress重写规则杭州seo薪资水平
  • 做网站容易还是app容易适合30岁短期培训班
  • 雨花区师德师风建设专题网站肇庆网站制作软件
  • 昆明网站建设一条龙seo搜索引擎优化哪家好
  • 比较知名的设计网站有哪些推广形式有哪几种
  • 自己做免费的网站吗黑帽seo教程
  • 请问大连谁家做网站谷歌独立站seo
  • 商业网站建设网站网络推广运营
  • 德化县住房和城乡建设局网站google搜索优化方法
  • wordpress影视主题mibt谷歌seo是做什么的