質問編集履歴

2

マークアップ例を記述

2016/08/28 21:33

投稿

cutter
cutter

スコア140

test CHANGED
File without changes
test CHANGED
@@ -4,11 +4,61 @@
4
4
 
5
5
  例えば、「本州の南海上を北東に」というワードを含む文章が、hbody という一意のクラスを持つタグの中にあるので、simple dom phpで.hbodyを狙えば文章がまるまる取得出来ます。
6
6
 
7
-
8
-
9
7
  http://news.yahoo.co.jp/pickup/6212572
10
8
 
11
9
 
10
+
11
+
12
+
13
+ https://teratail.com/questions/18940
14
+
15
+ この質問と似ていたので、「xpath テキスト」で色々調べて出てきたものを試しましたが、何も出力されないのですが使い方が違いますでしょうか。
16
+
17
+ (配列で帰ってくるのかわからなかったのでechoとvar_dump両方しています。)
18
+
19
+
20
+
21
+ ```php
22
+
23
+ $html = file_get_contents('http://news.yahoo.co.jp/pickup/6212572');
24
+
25
+ $document = new DOMDocument();
26
+
27
+ @$document->loadHTML($html);
28
+
29
+ $path = new DOMXPath($document);
30
+
31
+
32
+
33
+ // 要素の文字列が"プログラミング"である
34
+
35
+ echo $node_list = $path->query('//*[.="進んだ"]');
36
+
37
+ var_dump($node_list);
38
+
39
+
40
+
41
+ // 要素の文字列に"プログラミング"が含まれている
42
+
43
+ echo $node_list = $path->query('//*(./text(), "進んだ")');
44
+
45
+ var_dump($node_list);
46
+
47
+ //その他
48
+
49
+ echo $node_list = $path->query('//p[contains(text(), "進んだ")]');
50
+
51
+ var_dump($node_list);
52
+
53
+ echo $node_list = $path->query('//p[contains(text(), "進んだ")]') # 部分一致
54
+
55
+ var_dump($node_list);
56
+
57
+ echo $node_list = $path->query('//p[contains(., "進んだ")]') # 部分一致
58
+
59
+ var_dump($node_list);
60
+
61
+ ```
12
62
 
13
63
 
14
64
 

1

不要なマークアップの削除

2016/08/28 21:33

投稿

cutter
cutter

スコア140

test CHANGED
@@ -1 +1 @@
1
- PHPで、特定の文字列を含むHTMLのX-pathを見つける方法
1
+ PHPで、HTML内の特定の文字列を含む文章を得る方法(X-path利用でしょうか)
test CHANGED
@@ -2,26 +2,18 @@
2
2
 
3
3
 
4
4
 
5
- としまして下記の場合、「得意分野」というワードを元にdivタグを場所指定きるX-pathを取得したい形になります。
5
+ えば、「本州の南海上を北東に」というワードを含む文章がhbody という一意クラスを持つタグの中にあるの、simple dom phpで.hbody狙えば文章がまるまる取得出来ます。
6
6
 
7
7
 
8
8
 
9
- ```html
10
-
11
- <div>
12
-
13
- こんにちは。
14
-
15
- 私の得意分野はPHPです。
16
-
17
- </div>
9
+ http://news.yahoo.co.jp/pickup/6212572
18
-
19
- ```
20
10
 
21
11
 
22
12
 
13
+
14
+
23
- simple_html_dom.phpを普段使用しているのですが、特定のクラスやID,スタイル要素を持つタグを取得は出来ますが、特定のキーワードを含む文章を包むタグの取得はPHPで出来るのでしょうか。
15
+ simple_html_dom.phpを普段使用しているのですが、特定のクラスやID,スタイル要素を持つタグを取得は出来ますが、特定のキーワードを含む文章を包むタグ(一意場所指定で)取得はPHPで出来るのでしょうか。
24
16
 
25
17
 
26
18
 
27
- PhantomJSがインストール出来ない一般的な共用サーバーになります。
19
+ PhantomJSがインストール出来ない一般的な共用サーバーになります。