gpt4 book ai didi

python - XPath 内置函数及其与 lxml 的使用

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:12 25 4
gpt4 key购买 nike

这是我正在尝试的一个简单的代码示例。

from lxml import etree

myXML = etree.XML('''\
<registers part="FXLS8471Q">
<register fxblock="Newfx">
<regname>STATUS_NEW</regname>
<regnamelong/>
<type>R</type>
<address>00</address>
<defaulthex>00</defaulthex>
<field>
<number>7</number>
<name>F_STATUS</name>
<width>8</width>
<reset>00000000</reset>
</field>
</register>
</registers>
''')

def hello(context, a):
return "Hello %s" % a

ns = etree.FunctionNamespace(None)
ns['hello'] = hello

print(myXML.xpath("hello('Dr. Falken')"))
print(myXML.xpath('hello(string(regname))'))

我很困惑为什么最后一条语句没有打印出我期望的内容(STATUS_NEW)。如何判断我的 Python 2.7 和站点包是否存在不兼容问题?或者有一些编码错误?

lxml 是否支持所有 XPath 内置函数?如果不支持,有人可以指出我支持其中的哪些子集吗?我正在使用 lxml 3.2.1。

谢谢,贾亚拉姆

最佳答案

正确的 XPath 表达式是 //regname/registers/register/regname:

print(myXML.xpath('hello(string(//regname))'))

关于python - XPath 内置函数及其与 lxml 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com