转换 ReadyAPI xpath 以便在 Python 3 中使用
Convert ReadyAPI xpath for use in 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']
我在将我在 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']