A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
===========PHPのコード===========
<?php
$doc = new DOMDocument();
$doc->resolveExternals = true;
$doc->strictErrorChecking = true;
$doc->recover = false;
$doc->load("Q5605930-1.xml");
$xpath = new DOMXPath($doc);
$xpath->registerNamespace ( "ns" , "http://himajin100000.example.com/" );
$nodes = $xpath->query("/xml/data/ns:A1/ns:A2/ns:A3");
for($i = 0;$i < $nodes->length;$i++){
print($nodes->item(0)->namespaceURI . "\n");
print($nodes->item(0)->localName . "\n");
print($nodes->item(0)->textContent . "\n");
}
?>
========用いたXMLファイル==========
<xml>
<data>
<aa:A1 xmlns:aa="http://himajin100000.example.com/">
<aa:A2>
<aa:A3>これが取りたい</aa:A3>
</aa:A2>
</aa:A1>
</data>
</xml>
=======結果(何を求めたいのかよく判らなかったから適当に)=======
http://himajin100000.example.com/
A3
これが取りたい
=============その他===========
SimpleXMLあまり好きじゃないので書かない。DOMのみ。(初心者には簡易な記法が好まれるが、一貫性の方が重要で安易に簡易さを求めるべきではないという立場の俺としては複雑な心境である)
XMLに名前空間宣言はちゃんと含めてください。
DOMXPathのregisterNamespaceの第一引数は
DOMXPathのqueryメソッドで使われるXPath式のものであれば何でも良い、ということを一応示すために、元のXMLの名前空間接頭辞aaを使わないようにした。
gooはURIっぽい文字列の連続するUS-ASCIIの文字の最初と最後に不可視の文字を付け加えるので取り除いてから動かすこと。
一応xmlで始まる要素名は予約されているので、安易に使うと新しく規格が出来たときに困るかもしれないから覚悟してね
この回答へのお礼
お礼日時:2010/01/19 23:17
丁寧な回答ありがとうございます。
自分はsimplexmlで実行していた為、DOMについては全く知識が
ないのですが、調べながら実装してみようと思います。
結果を明確に記述していなくてすみませんでした^^;
”これが取りたい”とういう文字列を取得したかったので、
上記の回答でばっちり分かりました^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 実用・教育 その著者まで亡くなられたのですか? 2 2022/07/30 17:55
- その他(家族・家庭) 幼い2人の子は、孤児になるのでしょうか?? 1 2022/07/31 15:01
- 政治 佐渡金山の推薦書不備に怒りの声……こういうのに、統一教会の意向を受けた売国議員が暗躍してませんか? 2 2022/07/31 19:18
- 電気・ガス・水道 ソーラーパネル初心者です 1 2023/01/01 13:46
- 宗教学 公明・山口氏、悪質な勧誘に「制裁を考えなければ」……創価学会は大丈夫ですか? 2 2022/11/10 04:22
- 政治 自民・萩生田光一政調会長「防衛増税前に解散、国民に信を問う」……国民をナメきってませんか? 4 2022/12/25 19:19
- サバイバルゲーム このタイプの差し込み口ってなんの種類か分かりますか? 3 2022/07/29 15:32
- ZOZOTOWN このタイプの差し込み口ってなんの種類か分かりますか? 2 2022/07/29 15:31
- 宇宙科学・天文学・天気 反物質がほとんどなくて、ほぼ物質だけの宇宙になったのは偶然ですか? 3 2022/11/13 14:37
- 宇宙科学・天文学・天気 反物質がほとんどなくて、ほぼ物質だけの宇宙になったのは偶然ですか? 1 2022/07/04 16:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel-VBAでXMLの複数ノードの...
-
XMLのタグ名に予約語は禁止?
-
VBSでxmlの値を書き換えたい
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
あせんうぶり言語
-
XSLで、XMLの空タグを制御したい。
-
VB6でXMLを作成しているのです...
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
HTTPステータス 404 - There is...
-
コンテキストメニュークリック...
-
ノードの並び替え
-
Listからのnull要素を削除方法は?
-
ルート要素ノードが2個ある場合?
-
ノードとは
-
このエラー、何とかなりません...
-
html→xmlの変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel-VBAでXMLの複数ノードの...
-
VBSでxmlの値を書き換えたい
-
XML同じ名前の要素を自動で集約...
-
XMLのタグ名に予約語は禁止?
-
妥当なXML文書
-
エラーメッセジの意味が分かり...
-
TOMCAT起動エラー
-
XMLの名前空間について
-
robots.txtの設置場所
-
RSSファイルの拡張子はどれが正...
-
sitemap.xmlとrobots.txtの関係
-
ANTのbuild.xmlに日本語コメン...
-
サイトマップの作り方。
-
XMLからデータを取得
-
mac 10.9.3に英辞郎を導入する
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
おすすめ情報