回答編集履歴
4
修正
answer
CHANGED
@@ -13,10 +13,10 @@
|
|
13
13
|
$divs = $xpath->query('//div[@class="text"]'); // classがtextの<div>を探す
|
14
14
|
foreach($divs as $div) { // 見つかった<div>が配列になっているのでループで回す
|
15
15
|
$en_divs = $xpath->query('div[@class="en_text"]', $div); // そのdivからclassがen_textの<div>を探す
|
16
|
-
if(
|
16
|
+
if($en_divs->length) { // divがあったら
|
17
|
-
$div->removeChild($en_divs
|
17
|
+
$div->removeChild($en_divs->item(0)); // en_textのdivを消す
|
18
18
|
}
|
19
|
-
|
19
|
+
echo $div->nodeValue ."\n"; // <div>内の値をechoで出力する
|
20
20
|
}
|
21
21
|
```
|
22
22
|
|
3
さらに修正
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
$divs = $xpath->query('//div[@class="text"]'); // classがtextの<div>を探す
|
14
14
|
foreach($divs as $div) { // 見つかった<div>が配列になっているのでループで回す
|
15
15
|
$en_divs = $xpath->query('div[@class="en_text"]', $div); // そのdivからclassがen_textの<div>を探す
|
16
|
-
if($en_divs
|
16
|
+
if(!empty($en_divs[0])) {
|
17
17
|
$div->removeChild($en_divs[0]); // en_textのdivを消す
|
18
18
|
}
|
19
19
|
echo $div->nodeValue ."\n"; // <div>内の値をechoで出力する
|
2
凡ミス修正
answer
CHANGED
@@ -17,6 +17,7 @@
|
|
17
17
|
$div->removeChild($en_divs[0]); // en_textのdivを消す
|
18
18
|
}
|
19
19
|
echo $div->nodeValue ."\n"; // <div>内の値をechoで出力する
|
20
|
+
}
|
20
21
|
```
|
21
22
|
|
22
23
|
DomDocumentを使うと、HTMLを構造解析して、XPathでほしい情報を抽出できます。詳しくは、[ここ](http://php-archive.net/php/dom-scraping/)を読んで下さい。多くの場合、正規表現より正確かつ簡単に抽出できます。
|
1
修正
answer
CHANGED
@@ -10,10 +10,13 @@
|
|
10
10
|
$dom = new DomDocument; // DomDocumentオブジェクトを作る
|
11
11
|
@$dom->loadHTML($html); // ターゲットのHTMLをDomDocumentに読み込ませる
|
12
12
|
$xpath = new DOMXPath($dom); // XPathオブジェクトを作る
|
13
|
-
$divs = $xpath->query('//div[@class="
|
13
|
+
$divs = $xpath->query('//div[@class="text"]'); // classがtextの<div>を探す
|
14
14
|
foreach($divs as $div) { // 見つかった<div>が配列になっているのでループで回す
|
15
|
+
$en_divs = $xpath->query('div[@class="en_text"]', $div); // そのdivからclassがen_textの<div>を探す
|
16
|
+
if($en_divs->length) { // divがあったら
|
17
|
+
$div->removeChild($en_divs[0]); // en_textのdivを消す
|
18
|
+
}
|
15
|
-
|
19
|
+
echo $div->nodeValue ."\n"; // <div>内の値をechoで出力する
|
16
|
-
}
|
17
20
|
```
|
18
21
|
|
19
22
|
DomDocumentを使うと、HTMLを構造解析して、XPathでほしい情報を抽出できます。詳しくは、[ここ](http://php-archive.net/php/dom-scraping/)を読んで下さい。多くの場合、正規表現より正確かつ簡単に抽出できます。
|