pdfquery中子元素的条件选择

2024-09-27 21:28:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pdfquery从PDF中提取数据。 我的pdf树xml如下所示:

<LTTextLineHorizontal>
  <LTTextBoxHorizontal>Address</LTTextBoxHorizontal>
</LTTextLineHorizontal>

<LTTextBoxHorizontal>
  <LTTextBoxHorizontal>
     First-Name
  </LTTextBoxHorizontal>
  <LTTextBoxHorizontal>
     Last-Name
  </LTTextBoxHorizontal>
</LTTextBoxHorizontal>

其思想是生成一个Address First Name Last Name

然后需要根据子元素的存在来选择子元素,我不知道该怎么做。在


Tags: 数据name元素pdfaddressxml思想first
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:35

您需要使用.extractwith_parents关键字来提取子元素。文档给出了一个decent example

pdf.extract([
     ('with_parent','LTPage[page_index="1"]'),
     ('last_name', ':in_bbox("315,680,395,700")')
 ])

在本例中,您只需将搜索限制在文档的第1页。但是,您也可以使用with_parent关键字传入先前选择的结果。在

例如,在您的示例中,如果Address有子元素(street、city、zipcode),您可以首先找到Address部分,将元素存储为变量,然后使用.extract来提取子元素。如何存储和构造结果数据将取决于您的最终需求。在

地址=pdf.pdf查询('LTTextBoxH水平:包含(“地址”)')

^{pr2}$

在许多情况下,子对象不一定嵌套在xml树中,因此需要使用基于bbox的方法。在这种情况下,我要做的是构造一个bbox,使用“parent”作为顶部边界,下一个已知的非子对象作为底部边界,然后将其传递给.extract。请记住,bboxes是用左下角、右上角的坐标构建的。在

相关问题 更多 >

    热门问题