使用Xpath计数函数计算元素索引

时间:2017-06-06 14:28:22

标签: html xml xpath

我正在尝试使用xpath 1.0从html文件中提取数据。面临的挑战是使用count函数来计算我需要的数据的索引。 该文件相当大并且高度嵌套,因此这里是html的链接 https://pastebin.com/yub4gnNP

<table border="1"><tr><th>segment</th><td><table border="1"><tr><th>segment_type</th><td>survey</td></tr><tr><th>exclusions</th><td><ul><li>aa</li><li>aa</li></ul></td></tr><tr><th>inclusions</th><td><ul><li>aa</li><li>aa</li><li>aa</li><li>aa</li></ul></td></tr><tr><th>segment</th><td><ul><li><table border="1"><tr><th>ID</th><td>Section A</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>type</th><td>aa</td></tr><tr><th>tracking_code</th><td>010</td></tr><tr><th>exclusions</th><td>aa</td></tr><tr><th>inclusions</th><td>aa</td></tr><tr><th>text</th><td>aa</td></tr><tr><th>ID</th><td>1</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>2</td><td>aa</td></tr><tr><td>37</td><td>No</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>type</th><td>aa</td></tr><tr><th>tracking_code</th><td>023</td></tr><tr><th>exclusions</th><td>aa</td></tr><tr><th>inclusions</th><td><ul><li>aa</li><li>aa</li></ul></td></tr><tr><th>text</th><td>aa?</td></tr><tr><th>ID</th><td>2</td></tr><tr><th>context</th><td>aa</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><td>bb</td></tr><tr><th>ID</th><td>4</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>bb</td></tr><tr><th>tracking_code</th><td>165</td></tr><tr><th>context</th><td>bb</td></tr><tr><th>type</th><td>bb</td></tr></table></li><li><table border="1"><tr><th>text</th><td>bb</td></tr><tr><th>tracking_code</th><td>316</td></tr><tr><th>type</th><td>bb</td></tr></table></li></ul></td></tr></table></td></tr><tr><th>ID</th><td>Section B</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>type</th><td>bb</td></tr><tr><th>tracking_code</th><td>154</td></tr><tr><th>exclusions</th><td>bb</td></tr><tr><th>inclusions</th><td>bb</td></tr><tr><th>text</th><td>bb</td></tr><tr><th>ID</th><td>3</td></tr><tr><th>context</th><td>bb.</td></tr></table></li><li><table border="1"><tr><th>text</th><td>bb</td></tr><tr><th>tracking_code</th><td>155</td></tr><tr><th>ID</th><td>5</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>6</td><td>bb</td></tr><tr><td>7</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>bb</td></tr></table></li><li><table border="1"><tr><th>text</th><td>bb</td></tr><tr><th>tracking_code</th><td>156</td></tr><tr><th>ID</th><td>6</td></tr><tr><th>type</th><td>bb</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><ul><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>ID</th><td>10</td></tr><tr><th>question</th><td><table border="1"><tr><th>validation</th><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>IF YES THEN 278, 279, 280, 281 = NO</td><td>cc</td><td>277</td><td>boolean</td></tr><tr><td>IF YES THEN 277, 279, 280, 281 = NO</td><td>2Mbps or more, but less than 10Mbps</td><td>278</td><td>boolean</td></tr><tr><td>IF YES THEN 277, 278, 280, 281 = NO</td><td>10Mbps or more, but less than 30Mbps</td><td>279</td><td>boolean</td></tr><tr><td>IF YES THEN 277, 278, 279, 281 = NO</td><td>30Mbps or more, but less than 100Mbps</td><td>280</td><td>boolean</td></tr><tr><td>IF YES THEN 277, 278, 279, 280 = NO</td><td>100Mbps or more</td><td>281</td><td>boolean</td></tr></table></td></tr></table></td></tr><tr><th>text</th><td>cc</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>356</td></tr><tr><th>ID</th><td>9</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>10</td><td>Yes</td></tr><tr><td>12</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>452</td></tr><tr><th>ID</th><td>11</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>context</th><td>cc</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>413</td></tr><tr><th>ID</th><td>12</td></tr><tr><th>type</th><td>boolean</td></tr><tr><th>inclusions</th><td>cc</td></tr></table></li><li><table border="1"><tr><th>type</th><td>boolean</td></tr><tr><th>tracking_code</th><td>453</td></tr><tr><th>inclusions</th><td>pcc</td></tr><tr><th>text</th><td>cc</td></tr><tr><th>ID</th><td>13</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>14</td><td>Yes</td></tr><tr><td>15</td><td>No</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>320</td></tr><tr><th>ID</th><td>14</td></tr><tr><th>context</th><td>cc</td></tr><tr><th>type</th><td>cc</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>ID</th><td>16</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>cc</td><td>203</td><td>boolean</td></tr><tr><td>cc</td><td>147</td><td>cc</td></tr><tr><td>cc</td><td>332</td><td>boolean</td></tr><tr><td>Tcc</td><td>202</td><td>boolean</td></tr><tr><td>cc</td><td>205</td><td>boolean</td></tr><tr><td>Lcc</td><td>414</td><td>boolean</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc:</td></tr><tr><th>ID</th><td>17</td></tr><tr><th>questions</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>454</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc?</td></tr><tr><th>tracking_code</th><td>455</td></tr><tr><th>type</th><td>cc</td></tr><tr><th>inclusions</th><td>cc</td></tr></table></li></ul></td></tr><tr><th>exclusions</th><td>Oc.</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc:</td></tr><tr><th>ID</th><td>18</td></tr><tr><th>questions</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>456</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>457</td></tr><tr><th>type</th><td>boolean</td></tr><tr><th>inclusions</th><td>cc</td></tr></table></li></ul></td></tr><tr><th>exclusions</th><td>cc.</td></tr></table></li></ul></td></tr><tr><th>text</th><td>cc</td></tr><tr><th>question</th><td><table border="1"><tr><th>type</th><th>tracking_code</th><th>exclusions</th><th>text</th><th>ID</th><th>routing</th></tr><tr><td>boolean</td><td>080</td><td>cc</td><td>cc</td><td>15</td><td><ul><li><table border="1"><tr><th>destination</th><td>16</td></tr><tr><th>value</th><td>Yes</td></tr></table></li><li><table border="1"><tr><th>destination</th><td>17</td></tr><tr><th>value</th><td>No</td></tr></table></li></ul></td></tr></table></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><th>ID</th><th>question</th></tr><tr><td>cc</td><td>19</td><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>386</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>20</td><td>Yes</td></tr><tr><td>21</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>387</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>20</td><td>Yes</td></tr><tr><td>21</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>338</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>20</td><td>Yes</td></tr><tr><td>21</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>389</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>20</td><td>Yes</td></tr><tr><td>21</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr><tr><td>cc</td><td>20</td><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>341</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>342</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>343</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>344</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>c?</td></tr><tr><th>tracking_code</th><td>345</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>cc?</td></tr><tr><th>tracking_code</th><td>346</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></td></tr><tr><th>text</th><td>cc</td></tr><tr><th>context</th><td>cc</td></tr></table></li></ul></td></tr><tr><th>ID</th><td>Section C </td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>cc</td></tr><tr><th>tracking_code</th><td>038</td></tr><tr><th>ID</th><td>7</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>8</td><td>Yes</td></tr><tr><td>21</td><td>No</td></tr></table></td></tr><tr><th>type</th><td>cc</td></tr></table></li><li><table border="1"><tr><th>type</th><td>cc</td></tr><tr><th>tracking_code</th><td>022</td></tr><tr><th>exclusions</th><td><ul><li>cc</li><li>cc</li><li>cc</li></ul></td></tr><tr><th>inclusions</th><td><ul><li>cc</li><li>cc</li><li>cc</li></ul></td></tr><tr><th>text</th><td>cc</td></tr><tr><th>ID</th><td>8</td></tr><tr><th>context</th><td>cc</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><th>ID</th><th>question</th></tr><tr><td>dd:</td><td>22</td><td><ul><li><table border="1"><tr><th>text</th><td>dd?</td></tr><tr><th>tracking_code</th><td>191</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>dd</td></tr><tr><th>tracking_code</th><td>197</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></td></tr><tr><th>ID</th><td>Section D</td></tr><tr><th>context</th><td><ul><li>dd</li><li>dd</li></ul></td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><td>dd</td></tr><tr><th>tracking_code</th><td>190</td></tr><tr><th>ID</th><td>21</td></tr><tr><th>type</th><td>dd</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><td>ee</td></tr><tr><th>ID</th><td>24</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>ee</td><td>259</td><td>boolean</td></tr><tr><td>Vee</td><td>260</td><td>boolean</td></tr></table></td></tr></table></td></tr><tr><th>ID</th><td>Section E</td></tr><tr><th>context</th><td>ee.</td></tr><tr><th>question</th><td><table border="1"><tr><th>type</th><td>boolean</td></tr><tr><th>tracking_code</th><td>375</td></tr><tr><th>exclusions</th><td>ee</td></tr><tr><th>inclusions</th><td>ee</td></tr><tr><th>text</th><td>ee</td></tr><tr><th>ID</th><td>23</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>24</td><td>Yes</td></tr><tr><td>25</td><td>No</td></tr></table></td></tr></table></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><td>ff:</td></tr><tr><th>ID</th><td>25</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>ff</td><td>251</td><td>boolean</td></tr><tr><td>ff</td><td>246</td><td>boolean</td></tr><tr><td>ff</td><td>245</td><td>boolean</td></tr></table></td></tr></table></td></tr><tr><th>ID</th><td>Section F</td></tr><tr><th>context</th><td><ul><li>ff.</li><li>ff</li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><ul><li><table border="1"><tr><th>segment</th><td><ul><li><table border="1"><tr><th>validation</th><td>348 + 349 = '100'</td></tr><tr><th>text</th><td>gg:</td></tr><tr><th>ID</th><td>28</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>gg</td><td>348</td><td>gg</td></tr><tr><td>gg?</td><td>349</td><td>gg</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg?</td></tr><tr><th>ID</th><td>29</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>30</td><td>Yes</td></tr><tr><td>31</td><td>No</td></tr></table></td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>458</td></tr><tr><th>type</th><td>boolean</td></tr><tr><th>inclusions</th><td>gg</td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>459</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>validation</th><td>460 + 461 = '100'</td></tr><tr><th>text</th><td>gg:</td></tr><tr><th>ID</th><td>30</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>gg?</td><td>460</td><td>gg</td></tr><tr><td>gg</td><td>461</td><td>percentage_dec</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg?</td></tr><tr><th>ID</th><td>31</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>310</td></tr><tr><th>context</th><td>Tgg</td></tr><tr><th>type</th><td>gg</td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>311</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>32</td><td>Yes</td></tr><tr><td>33</td><td>No</td></tr></table></td></tr><tr><th>context</th><td>gg</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>Rest of the world</td></tr><tr><th>tracking_code</th><td>312</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>32</td></tr><tr><th>question</th><td><table border="1"><tr><th>text</th><th>tracking_code</th><th>type</th></tr><tr><td>gg</td><td>462</td><td>boolean</td></tr><tr><td>gg</td><td>463</td><td>boolean</td></tr><tr><td>gg</td><td>464</td><td>boolean</td></tr><tr><td>gg</td><td>465</td><td>boolean</td></tr><tr><td>gg</td><td>465</td><td>boolean</td></tr></table></td></tr></table></li></ul></td></tr><tr><th>text</th><td>gg</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>type</th><td>boolean</td></tr><tr><th>tracking_code</th><td>234</td></tr><tr><th>exclusions</th><td><ul><li>gg</li><li>gg</li></ul></td></tr><tr><th>inclusions</th><td>gg'</td></tr><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>26</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>27</td><td>Yes</td></tr><tr><td>33</td><td>No</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>type</th><td>gg</td></tr><tr><th>tracking_code</th><td>235</td></tr><tr><th>inclusions</th><td>gg</td></tr><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>27</td></tr><tr><th>context</th><td>gg</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>segment</th><td><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>35</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>UK</td></tr><tr><th>tracking_code</th><td>313</td></tr><tr><th>context</th><td>gg</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>314</td></tr><tr><th>context</th><td>gg</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>tracking_code</th><td>315</td></tr><tr><th>type</th><td>boolean</td></tr></table></li></ul></td></tr></table></td></tr><tr><th>text</th><td>gg</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>type</th><td>boolean</td></tr><tr><th>tracking_code</th><td>257</td></tr><tr><th>exclusions</th><td><ul><li>gg</li><li>gg</li></ul></td></tr><tr><th>inclusions</th><td>gg</td></tr><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>33</td></tr><tr><th>routing</th><td><table border="1"><tr><th>destination</th><th>value</th></tr><tr><td>34</td><td>Yes</td></tr><tr><td>36</td><td>No</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>type</th><td>gg</td></tr><tr><th>tracking_code</th><td>258</td></tr><tr><th>inclusions</th><td>gg</td></tr><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>34</td></tr><tr><th>context</th><td>gg</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>text</th><td>gg</td></tr><tr><th>question</th><td><table border="1"><tr><th>type</th><td>boolean</td></tr><tr><th>tracking_code</th><td>254</td></tr><tr><th>exclusions</th><td><ul><li>cgg</li><li>gg</li><li>gg</li></ul></td></tr><tr><th>inclusions</th><td>gg</td></tr><tr><th>text</th><td>gg</td></tr><tr><th>ID</th><td>36</td></tr></table></td></tr></table></li></ul></td></tr><tr><th>ID</th><td>Section G </td></tr><tr><th>context</th><td>gg</td></tr><tr><th>exclusions</th><td>gg</td></tr></table></li><li><table border="1"><tr><th>segment</th><td><ul><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>ID</th><td>37</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>Ahh</td></tr><tr><th>tracking_code</th><td>442</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>443</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>444</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>445</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>446</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>447</td></tr><tr><th>type</th><td>boolean</td></tr></table></li><li><table border="1"><tr><th>type</th><td>open_text</td></tr><tr><th>tracking_code</th><td>448</td></tr><tr><th>context</th><td>hh</td></tr></table></li></ul></td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>ID</th><td>38</td></tr><tr><th>question</th><td><table border="1"><tr><th>type</th><th>tracking_code</th></tr><tr><td>hours</td><td>441</td></tr><tr><td>minutes</td><td>440</td></tr></table></td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>ID</th><td>39</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>449</td></tr><tr><th>type</th><td>hh</td></tr></table></li><li><table border="1"><tr><th>text</th><td>hh</td></tr><tr><th>tracking_code</th><td>450</td></tr><tr><th>type</th><td>hh</td></tr></table></li><li><table border="1"><tr><th>type</th><td>open_text</td></tr><tr><th>tracking_code</th><td>451</td></tr><tr><th>context</th><td>hh</td></tr></table></li></ul></td></tr><tr><th>inclusions</th><td>hh</td></tr></table></li></ul></td></tr><tr><th>ID</th><td>Section H</td></tr><tr><th>context</th><td><ul><li>hh</li><li>hh</li></ul></td></tr></table></li><li><table border="1"><tr><th>ID</th><td>Section I</td></tr><tr><th>question</th><td><ul><li><table border="1"><tr><th>text</th><td>Ii</td></tr><tr><th>ID</th><td>40</td></tr><tr><th>tracking-code</th><td>500</td></tr><tr><th>type</th><td>ii</td></tr></table></li><li><table border="1"><tr><th>text</th><td>ii.</td></tr><tr><th>ID</th><td>41</td></tr><tr><th>tracking-code</th><td>C_1</td></tr><tr><th>type</th><td>ii</td></tr></table></li><li><table border="1"><tr><th>type</th><td>ii</td></tr></table></li></ul></td></tr></table></li></ul></td></tr><tr><th>text</th><td>2016</td></tr><tr><th>form_type</th><td>0031</td></tr><tr><th>reporting_period</th><td><table border="1"><tr><th>start</th><td>01/01/2016</td></tr><tr><th>finish</th><td>31/12/2016</td></tr></table></td></tr><tr><th>notes</th><td>aa</td></tr><tr><th>survey_number</th><td>187</td></tr></table></td></tr><tr><th>survey_scrape_info</th><td><table border="1"><tr><th>file_name</th><td>ex_</td></tr><tr><th>folder_name</th><td>187 </td></tr><tr><th>scrape_date</th><td>24/05/2017</td></tr><tr><th>download_date</th><td>22/03/2017</td></tr></table></td></tr></table>

这就是我到目前为止所拥有的

//th[contains(text(), "tracking_code")]/parent::tr/following-sibling::tr//td[(position()=(count(//th[.="tracking_code"]/preceding-sibling::th)+1))]

由于xpath建议我希望选择所有带有“tracking_code”的td标签作为列标题。这仅适用于具有水平th标记的表。

上面的xpath应该可以工作,但显然有一些东西我不见了。任何指针/帮助将不胜感激。

0 个答案:

没有答案