- PR -

PHPでXMLの扱いについて

1
投稿者投稿内容
ぶらんどん
常連さん
会議室デビュー日: 2005/11/18
投稿数: 32
投稿日時: 2006-02-23 11:49
いつもお世話になってます。

現在PHP5.0でXMLを操作しようとしているのですが、NameSpaceの操作がうまくできません。
getAttribute("xml:lang");
で値が取れないのですが・・・わかる人がいましたらご教授お願いします。
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-02-23 12:10
PHPでXMLというと何を使ってますか?・・・
って、ざっと検索してみたらPHP5からDOM Functionsがコアに含まれるようになったんですか・・・
(早速勉強しなくてわ(汗))

で、NameSpaceを含んだgetAttributeというと、getAttributeNSという関数がありませんか?
ぶらんどん
常連さん
会議室デビュー日: 2005/11/18
投稿数: 32
投稿日時: 2006-02-23 12:16
お返事ありがとうございます。
PHPではDomを使っています。
DomNodeクラス->getAttribute("xml:lang");
というような感じで取得しようとしています。
XMLの方は
<Description xml:lang="XXXX" Variant="XXXX">XX</Description>
な感じです。

DomNodeクラス->getAttributeNS("http://www.w3.org/1999/XSL/Transform","xml:lang");
としても値が取得できませんでした:
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-02-23 12:37
XPath式なら プリフィックス付きで 取れるのでは
http://www.php.net/manual/ja/function.dom-domxpath-evaluate.php
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-02-23 12:50
PHPは使ったことないんですが、DOMに準拠してれば「getAttribute("xml:lang")」のままで良い気がします。名前空間を使って指定するなら、「getAttributeNS("http://www.w3.org/XML/1998/namespace", "lang")」でしょう。
ぶらんどん
常連さん
会議室デビュー日: 2005/11/18
投稿数: 32
投稿日時: 2006-02-23 12:58
MMXさん、スフレさんお返事ありがとうございます。

結論から言いますとスフレさんの言われた
>「getAttributeNS("http://www.w3.org/XML/1998/namespace", "lang")」でしょう。
で解決しました。
URIの指定が間違っていました;

皆さんありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)