回答編集履歴

3

追加

2018/10/31 11:32

投稿

otn
otn

スコア84555

test CHANGED
@@ -57,3 +57,29 @@
57
57
  ```
58
58
 
59
59
  になるので、ちゃんと1件除外されて、24件抽出できているようです。
60
+
61
+ #追記2
62
+
63
+ `item(0)`の`nodeValue`は空で正常でしょう。
64
+
65
+ `item(0)->nodeValue`から`item(23)->nodeValue`までを繋ぎます。
66
+
67
+
68
+
69
+ ```PHP
70
+
71
+ $body = $xpath->query('//body/*[not(self::header)]');
72
+
73
+ $nodevalue="";
74
+
75
+ for($i=0; $i<$body->length; $i++){
76
+
77
+ $nodevalue .= $body->item($i)->nodeValue;
78
+
79
+ }
80
+
81
+ echo($nodevalue);
82
+
83
+ ```
84
+
85
+ `script`タグの内容がじゃまな気がします。

2

補足

2018/10/31 11:32

投稿

otn
otn

スコア84555

test CHANGED
@@ -5,6 +5,20 @@
5
5
 
6
6
 
7
7
  #追記
8
+
9
+ > headerタグを抜いた状態のbodyタグを抽出したい
10
+
11
+
12
+
13
+ ではなく、
14
+
15
+ > bodyタグの子要素のうちheaderタグ以外のタグを抽出したい
16
+
17
+
18
+
19
+ ということで。
20
+
21
+
8
22
 
9
23
  ```PHP
10
24
 

1

コメントを受けての追記

2018/10/26 00:26

投稿

otn
otn

スコア84555

test CHANGED
@@ -1,3 +1,45 @@
1
1
  XPathでは無理では?
2
2
 
3
3
  `header`ノードを`removeChild`するのでしょうね。
4
+
5
+
6
+
7
+ #追記
8
+
9
+ ```PHP
10
+
11
+ $all = $xpath->query('//body/*');
12
+
13
+ $not_header = $xpath->query('//body/*[not(self::header)]');
14
+
15
+
16
+
17
+ var_dump($all);
18
+
19
+ var_dump($not_header);
20
+
21
+ ```
22
+
23
+ で、
24
+
25
+ ```Plain
26
+
27
+ object(DOMNodeList)#28 (1) {
28
+
29
+ ["length"]=>
30
+
31
+ int(25)
32
+
33
+ }
34
+
35
+ object(DOMNodeList)#29 (1) {
36
+
37
+ ["length"]=>
38
+
39
+ int(24)
40
+
41
+ }
42
+
43
+ ```
44
+
45
+ になるので、ちゃんと1件除外されて、24件抽出できているようです。