本文整理汇总了Python中eulexistdb.query.Xquery.prep_xpath方法的典型用法代码示例。如果您正苦于以下问题:Python Xquery.prep_xpath方法的具体用法?Python Xquery.prep_xpath怎么用?Python Xquery.prep_xpath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eulexistdb.query.Xquery
的用法示例。
在下文中一共展示了Xquery.prep_xpath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_prep_xpath
# 需要导入模块: from eulexistdb.query import Xquery [as 别名]
# 或者: from eulexistdb.query.Xquery import prep_xpath [as 别名]
def test_prep_xpath(self):
xq = Xquery()
xq.xq_var = '$n'
# handle attributes
self.assertEqual('<field>{$n/@id}</field>', xq.prep_xpath('@id', return_field=True))
self.assertEqual('<field>{$n/../@id}</field>', xq.prep_xpath('../@id', return_field=True))
self.assertEqual('<field>{$n/parent::root/@id}</field>', xq.prep_xpath('parent::root/@id', return_field=True))
# handle regular nodes
self.assertEqual('<field>{$n/title}</field>', xq.prep_xpath('title', return_field=True))
# function call - regular node
self.assertEqual('substring($n/title,1,1)', xq.prep_xpath('substring(title,1,1)'))
# function call - abbreviated step
self.assertEqual('substring($n/.,1,1)', xq.prep_xpath('substring(.,1,1)'))
# xpath with OR - absolute paths
self.assertEqual('<field>{$n/name|$n/title}</field>', xq.prep_xpath('/name|/title', return_field=True))
# xpath with OR - relative paths
self.assertEqual('<field>{$n/name|$n/title}</field>', xq.prep_xpath('name|title', return_field=True))
# xpath with OR - mixed absolute and relative paths
self.assertEqual('<field>{$n/name|$n/title}</field>', xq.prep_xpath('/name|title', return_field=True))
# multiple ORs
self.assertEqual('<field>{$n/name|$n/title|$n/@year}</field>',
xq.prep_xpath('/name|/title|@year', return_field=True))
# .//node inside a function call
self.assertEqual('<field>{normalize-space($n/.//name)}</field>',
xq.prep_xpath('normalize-space($n/.//name)', return_field=True))
# node|node inside a function call
self.assertEqual('fn:lower-case($n/name|$n/title)',
xq.prep_xpath('fn:lower-case(name|title)'))