반응형
xpath를 사용하여 다음 형제 / xml 태그를 선택하는 방법
Newegg의 HTML 파일이 있으며 HTML은 아래와 같이 구성됩니다. 사양 테이블의 모든 데이터는 ' desc '이고 각 섹션의 제목은 ' name입니다. '아래는 Newegg 페이지의 데이터 두 가지 예입니다.
<tr>
<td class="name">Brand</td>
<td class="desc">Intel</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Core i5</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">LGA 1156</td>
<tr>
<td class="name">Brand</td>
<td class="desc">AMD</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Phenom II X4</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">Socket AM3</td>
</tr>
결국에는 각 데이터를 저장하기 위해 브랜드, 시리즈, 코어 및 소켓 유형으로 구성된 CPU (이미 설정되어 있음)에 대한 클래스를 갖고 싶습니다. 이것이 제가 이것을 할 수있는 유일한 방법입니다.
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
나머지 값에 대해서도 이렇게합니다. 다음 형제를 어떻게 달성 할 수 있으며 더 쉬운 방법이 있습니까?
다음 형제를 어떻게 달성 할 수 있으며 더 쉬운 방법이 있습니까?
다음을 사용할 수 있습니다 .
tr/td[@class='name']/following-sibling::td
하지만 차라리 직접 사용하고 싶습니다 .
tr[td[@class='name'] ='Brand']/td[@class='desc']
이것은 다음을 가정합니다 .
XPath 표현식이 평가되는 컨텍스트 노드는
tr
질문에 표시되지 않은 모든 요소 의 부모입니다 .각
tr
요소는 하나 가지고td
와class
값 특성'name'
과 하나td
와class
값 특성'desc'
.
following-sibling
축 ( following-sibling::td
)을 시도하십시오 .
참고 URL : https://stackoverflow.com/questions/3139402/how-to-select-following-sibling-xml-tag-using-xpath
반응형
'programing' 카테고리의 다른 글
Maven 릴리스 플러그인을 사용하는 동안 "Git fatal : ref HEAD는 기호 참조가 아닙니다." (0) | 2020.09.09 |
---|---|
사용자가받은 모든 권한을 어떻게 나열 할 수 있습니까? (0) | 2020.09.09 |
100 개의 움직이는 표적 사이의 최단 경로를 어떻게 찾을 수 있습니까? (0) | 2020.09.08 |
왜 yield return이 catch가있는 try 블록 안에 나타나지 않습니까? (0) | 2020.09.08 |
명명 된 콘텐츠로 WPF UserControl을 만드는 방법 (0) | 2020.09.08 |