允许对表示xpath的字符串进行xpath操作的模块

xpath-string的Python项目详细描述


https://travis-ci.com/yavorek/xpath-string.svg?branch=masterhttps://img.shields.io/badge/python-3.4%2C%203.5%2C%203.6%2C%203.7-blue.svghttps://img.shields.io/pypi/v/xpath-string.svghttps://codecov.io/gh/yavorek/xpath-string/branch/master/graph/badge.svg

xpath字符串

提供对xpath字符串的操作的简单模块

目前只支持添加xpath

xpath对象

  • 初始化
    fromxpath_string.xpathimportXpathxpath_object=Xpath('//some[@xpath="string"]')
  • 属性:

    xpath-xpath字符串(类型:'str')

xpath添加

  • xpath对象+字符串

    将字符串添加到xpath对象的结果是xpath对象。 向xpath对象添加字符串与添加两个字符串相同。

    xpath_object=Xpath('//some[@xpath="string"]')string='//div[@class="name"]'result=xpath_object+string# result == '//some[@xpath="string"]//div[@class="name"]'# result.xpath == '//some[@xpath="string"]//div[@class="name"]'

    同样的情况是,当xpath对象用or运算符表示xpath字符串时

    xpath_object=Xpath('//some[@xpath="string"]|\\span')string='//div[@class="name"]'result=xpath_object+string# result == '//some[@xpath="string"]|//span//div[@class="name"]'# result.xpath == '//some[@xpath="string"]|//span//div[@class="name"]'
  • xpath对象+xpath对象

    将xpath对象添加到xpath对象的结果是xpath对象。

    xpath_object_1=Xpath('//some[@xpath="string"]')xpath_object_2=Xpath('//div[@class="name"]')result=xpath_object_1+xpath_object_2# result == '//some[@xpath="string"]//div[@class="name"]'# result.xpath == '//some[@xpath="string"]//div[@class="name"]'

    当至少一个xpath对象在xpath的主要部分(不在方括号内)有or运算符时:

    xpath_object_1=Xpath('//some[@xpath="string"]|//span')xpath_object_2=Xpath('//div[@class="name"]')result_1=xpath_object_1+xpath_object_2# result_1 == '//some[@xpath="string"]//div[@class="name"|//span//div[@class="name"]'# result_1.xpath == '//some[@xpath="string"]//div[@class="name"|//span//div[@class="name"]'result_2=xpath_object_2+xpath_object_1# result_2 == '//div[@class="name"]//some[@xpath="string"]|//div[@class="name"]//span'# result_2.xpath == '//div[@class="name"]//some[@xpath="string"]|//div[@class="name"]//span'

xpath.format()

内置的字符串过保护。 xpath.format('some string')正在格式化对象的xpath字符串属性。 它返回带有'formatted'xpath属性的新xpath对象。

示例:

xpath_object_1=Xpath('//some[@xpath="{}"]')xpath_object_2=xpath_object_1.format('new')# xpath_object_1 == Xpath('//some[@xpath="{}"]')# xpath_object_2 == Xpath('//some[@xpath="new"]')xpath_object_3=Xpath('//some[@xpath="{sth}"]')xpath_object_4=xpath_object_1.format(sth='one')# xpath_object_3 == Xpath('//some[@xpath="{sth}"]')# xpath_object_4 == Xpath('//some[@xpath="one"]')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何复制二维字符串数组?   java Realworld参数优化   输入创建一个Java程序,读取。txt并标识三角形边长   java Apache HttpClient上传后文件无法与MultipartEntityBuilder上传一起使用   java如何从单独的类文件中随机选择两个枚举值   Java获取两个正则表达式之间所有字符串的最佳方法?   java如何将按钮链接到微调器?   java改造2.0:如何映射不同类型的对象   java如何检查Antlr3中的数字范围?   java使用JNDI查找EJB Bean   java构造函数字符串、字符串、int、int、Optional<>在spring boot中未定义   java如何使用jruby(使用jetty运行)创建servlet?   JavaFX:为什么在背景改变之前我必须按下按钮几次?   java可以为违反映射契约的映射生成重复的JSON对象属性名吗?   JavaJSOUP从网站获取某些属性   Eclipse:如何使java文件夹显示为树?   如何在Java中从Matcher获取多个正则表达式组?   构造函数中带有参数的lambda Java 8供应商   java是否可以在ExtJS 3.2中对日期进行自定义排序