2
얘들 아, 나는이 내가 정보 당겨하려고 다음과 같은 HTML 구조 : 나는 소스 HTML을 제어 할 수 있습니다 당신이 볼로하지 않는는 PHP의 DOM 요소를 액세스 도움이 필요
// Product 1
<div class="productName">
<span id="product-name-1">Product Name 1</span>
</div>
<div class="productDetail">
<span class="warehouse">Warehouse 1, ACT</span>
<span class="quantityInStock">25</span>
</div>
// Product 2
<div class="productName">
<span id="product-name-2">Product Name 2</span>
</div>
<div class="productDetail">
<span class="warehouse">Warehouse 2, ACT</span>
<span class="quantityInStock">25</span>
</div>
…
// Product X
<div class="productName">
<span id="product-name-X">Product Name X</span>
</div>
<div class="productDetail">
<span class="warehouse">Warehouse X, ACT</span>
<span class="quantityInStock">25</span>
</div>
을 productName과 함께 제공되는 productDetail은 공통 요소 내에 포함되어 있지 않습니다.
이제 다음 PHP 코드를 사용하여 페이지를 구문 분석하려고합니다. 다음 인쇄
$html = new DOMDocument();
$html->loadHtmlFile('product_test.html');
$xPath = new DOMXPath($html);
$domQuery = '//div[@class="productName"]|//div[@class="productDetail"]';
$entries = $xPath->query($domQuery);
foreach ($entries as $entry) {
echo "Detail: " . $entry->nodeValue) . "<br />\n";
}
:
Detail: Product Name 1
Detail: Warehouse 1, ACT
Detail: 25
Detail: Product Name 2
Detail: Warehouse 2, ACT
Detail: 25
Detail: Product Name X
Detail: Warehouse X, ACT
Detail: 25
지금, 이것은 내가 원하는 가깝습니다. 그러나 각 제품, 창고 및 수량 재고에 대해 일부 처리를 수행해야하며이를 별도의 제품 그룹으로 구문 분석하는 방법을 알 수 없습니다. 난 그냥 그것을 알아낼 수 없으며, 요소가 꽤와 동일하게 작동하지 않는 한 나는이 DOM 물건 주위에 내 머리를 정리 할 수
Product 1:
Name: Product Name 1
Warehouse: Warehouse 1, ACT
Stock: 25
Product 2:
Name: Product Name 2
Warehouse: Warehouse 2, ACT
Stock: 25
: 나는 후 오전 최종 출력은 뭔가처럼 표준 배열.
누구든지 도움을 주거나 올바른 방향으로 나를 가리키면 나는 감사 할 것입니다.
덕분에,이 올바른 방향으로 시작이다. 예제 코드를 사용하면 올바르게 작동합니다. 그러나 제 제작 코드에는 몇 가지 추가 div가 있으며 productName과 productDetail 사이에 걸쳐이 코드가 손상되는 것으로 보입니다. 다음 형제는 처음에 일치하는 바로 다음 요소를보고 단순히 "productDetail"이 다음에있을 것으로 예상합니까? 다음 요소가 쓰레기 일 때 어느 것이 깨질까요? –
추가 div로 스크립트를 테스트했기 때문에 이상합니다. 'following-siblings' 축에는 문맥 노드 다음의 형제 인 모든 노드가 문서 순서로 포함됩니다. 어쩌면 당신은 당신의 문서에 대해 더 자세하고 현실적인 예를 제공해야 할 것입니다. – VolkerK
좋은 친구! 어쨌든 제 게으른/졸린 실수였습니까? 코드가 아름답게 작동하고 있습니다! 고마워요 !! –