domでの子要素の数の取得について - PHPプロ!Q&A掲示板

117

  • 100P

domでの子要素の数の取得について

質問日時 / 2006年7月31日 22:48    回答数 / 2件

Questioner:  miherone  このエントリーをはてなブックマークに追加 

キーワード / DOM    length    子要素   

[test.xml]というxmlファイルを、[test.php]でロードしてみたところ、「$childs->length」が「7」を返します。
しかしjavascriptでmsxmlを使ってロードすると、lengthは「3」を返します。
私はDOMでは3でよいと思っているのですが、なぜ[test.php]では「7」を返すのでしょうか?
誰かお教え願えないでしょうか。よろしくお願いします。


[test.xml]-----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child>A</child>
<child>B</child>
<child>C</child>
</root>
---------------------------------------

[test.php]-----------------------------
<?php
$doc = new domDocument();
$doc->load("test.xml");
$root = $doc->documentElement;
$childs = $root->childNodes;
print ($childs->length);
?>
---------------------------------------

[test.html]----------------------------
<html>
<head><title>検索</title>
<script language="JavaScript">
<!--
var objXML = new ActiveXObject("Msxml2.DOMDocument");
objXML.async = false;
objXML.load("test.xml");
var root = objXML.documentElement;
var childs = root.childNodes;
window.alert (childs.length);
//-->
</script>
</head>
<body>
</body>
</html>
--------------------------------------

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimism>私はDOMでは3でよいと思っているのですが、なぜ[test
 ┗A01-1miheroneなるほど! わかりました。 ありがとうございまし

回答一覧

並び替え:

A01 満足
answerershimism [7月31日 23:34]

>私はDOMでは3でよいと思っているのですが、なぜ[test.php]では「7」を返すのでしょうか?
>誰かお教え願えないでしょうか。よろしくお願いします。

空白がテキストノードとしてカウントされていますので

$doc->load("test.xml", LIBXML_NOBLANKS);

で実行してみてください。

この意見に回答する

ツリーへ TOPへ

A01-1
replyermiherone [8月1日 19:26]

なるほど!
わかりました。

ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)