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

国外怎么做直播网站抖音信息流广告怎么投放

国外怎么做直播网站,抖音信息流广告怎么投放,四川在建项目信息查询,本地 安装 WordPress主题1、问题背景 我们在使用 LXML 库解析 MathML 表达式时,可能会遇到这样一个问题:在递归解析过程中,我们可能会重复进入同一个节点,导致解析结果不正确。例如,我们希望将以下 MathML 表达式解析为 Python 表达式&#x…

在这里插入图片描述

1、问题背景

我们在使用 LXML 库解析 MathML 表达式时,可能会遇到这样一个问题:在递归解析过程中,我们可能会重复进入同一个节点,导致解析结果不正确。例如,我们希望将以下 MathML 表达式解析为 Python 表达式:

<?xml version="1.0"?>
<math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/1998/Math/MathML http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd"><mrow><mfrac><mn>3</mn></mn><mn>5</mn></mn></mfrac></mrow>
</math>

如果我们使用以下代码来解析该表达式:

def parseMML(mmlinput):from lxml import etreefrom StringIO import *from lxml import objectifyexppy=[]events = ("start", "end")context = etree.iterparse(StringIO(mmlinput),events=events)for action, elem in context:if (action=='start') and (elem.tag=='mrow'):exppy+='('if (action=='end') and (elem.tag=='mrow'):exppy+=')'if (action=='start') and (elem.tag=='mfrac'):mmlaux=etree.tostring(elem[0])exppy+=parseMML(mmlaux)exppy+='/'mmlaux=etree.tostring(elem[1])exppy+=parseMML(mmlaux)if action=='start' and elem.tag=='mn': #this is a numberexppy+=elem.textreturn (exppy)

那么我们得到的解析结果将是:

['(', '(', '3', ')', '/', '(', '5', ')', '(', '3', ')', '(', '5', ')', ')']

而不是我们期望的:

['(', '(', '3', ')', '/', '(', '5', ')', ')']

这是因为在解析 mfrac 节点时,我们递归调用了 parseMML 函数两次,分别解析了分子和分母。而在解析分子时,我们又递归调用了 parseMML 函数,导致重复进入了 mrow 节点。

2、解决方案

为了解决这个问题,我们可以使用一个栈来保存已经解析过的节点。当我们开始解析一个新的节点时,我们可以将该节点压入栈中。当我们完成解析该节点时,我们可以将该节点从栈中弹出。这样,我们就能够避免重复进入同一个节点。

以下代码演示了如何使用栈来避免重复进入同一个节点:

def parseMML(mmlinput):from lxml import etreefrom StringIO import *from lxml import objectifyexppy=[]events = ("start", "end")context = etree.iterparse(StringIO(mmlinput),events=events)nodestack=[]for action, elem in context:if action=='start' and elem.tag in nodestack:continueif (action=='start') and (elem.tag=='mrow'):nodestack.append(elem.tag)exppy+='('if (action=='end') and (elem.tag=='mrow'):nodestack.pop()exppy+=')'if (action=='start') and (elem.tag=='mfrac'):nodestack.append(elem.tag)mmlaux=etree.tostring(elem[0])exppy+=parseMML(mmlaux)exppy+='/'mmlaux=etree.tostring(elem[1])exppy+=parseMML(mmlaux)if action=='start' and elem.tag=='mn': #this is a numberexppy+=elem.textreturn (exppy)

使用该代码,我们可以得到正确的解析结果:

['(', '(', '3', ')', '/', '(', '5', ')', ')']
http://www.tj-hxxt.cn/news/46566.html

相关文章:

  • 北京网站建设优化学校东莞seo外包公司
  • 美食类网站开发需求分析软文新闻发稿平台
  • 南京网站制作公司南京微尚网络营销专业培训学校
  • 河间哪里有做网站的怎样才能注册自己的网站
  • 信管女生做网站开发军事新闻今日最新消息
  • 制冷机电工程东莞网站建设全网营销渠道
  • 二级域名做网站代发推广百度首页包收录
  • 网站建设到底怎么回事百度直播
  • 个人资料网站怎么做外贸谷歌seo
  • 公司内部网站设计重庆企业seo
  • wordpress图书主题seo搜索引擎优化工程师招聘
  • 武汉网站建设与制作服务沈阳网站建设公司
  • 牡丹江营商环境建设监督局网站今日热搜榜
  • 成都建设厅网站首页上海最大的seo公司
  • 网站建设收徒弟成人速成班有哪些专业
  • 做网站开发的提成多少钱技术短期培训班
  • 现在网站建设还用测浏览器吗东莞seo培训
  • 陕西西安网站建设公司网站的推广平台有哪些
  • 抽奖网站插件代推广app下载
  • 湖州网站设计公司的别名是网站seo具体怎么做
  • 重庆 建站 价格软件制作平台
  • 创业做网站 优帮云网络产品运营与推广
  • 网站设计 配色百度指数属于行业趋势及人群
  • 网站建设 小程序制作免费卖货平台
  • 电商网站开发目的深圳互联网推广公司
  • 做网站怎么样才能赚到钱机构类网站有哪些
  • wordpress用户组 隐藏seo
  • 做网站是什么课合肥网站优化排名推广
  • 个人做门户网站如何编写一个网站
  • 企业网站源码自适应seosem顾问