如何解决转换 ReadyAPI xpath 以在 Python 3 中使用
我在将 ReadyAPI 中使用的 xpath 表达式转换为在 Python 3 中使用 lxml 库时遇到问题。我已经阅读了 lxml 文档,但没有得到相同的结果。
这是我的 XML:
<Envelope>
<Body>
<ReplyResponses>
<RepyResults>
<Reply>
<ContentsofReply>
<Content>
<IDofContent>ID of Content 1</IDofContent>
</Content>
</ContentsofReply>
<ID>ID of Reply 1</ID>
<Name>Name of Reply</Name>
</Reply>
</RepyResults>
</ReplyResponses>
</Body>
</Envelope>
我在 ReadyAPI 中使用以下 xpath 表达式:
//*:Reply[*:Name="Name of Reply"]/*:ID
预期的返回结果是:
回复 1 的 ID
和:
//*:Reply[*:Name="Name of Reply"]/*:ContentsofReply/*:Content/*:IDofContent
预期的返回结果是:
内容 1 的 ID
如何使用 lxml 库在 Python 3 中获得相同的结果?提前致谢。
解决方法
您问题中的 xpath 表达式包含 *:
前缀,旨在用于不在您的示例 xml 中的命名空间。
要使用 lxml 从示例 xml 中提取相同的数据,请将表达式更改为
//Reply[Name="Name of Reply"]/ContentsofReply/Content/IDofContent/text()
得到
['ID of Content 1']
到
//Reply[Name="Name of Reply"]/ID/text()
得到
['ID of Reply 1']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。