【PHP】【XML】DOMElementオブジェクトのタグ付き文字列を取得できますか?


var_dump($e);
//=> object(DOMElement)#1 (0) {}

$eをxml表現で取得することは可能でしょうか?

GOOD_FUNC($e);
//=> <a><b>content</b></a>
のような感じで、textContent だけでなくタグ付けて取得することはできますでしょうか?


回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/07/11 00:46:25
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:const No.2

回答回数3ベストアンサー獲得回数3

ポイント65pt

DOMDocument->saveXML() の第一引数に DOMElement を渡せます。

<?php
$xml = '<root><node><a><b>content</b></a></node></root>';
$doc = new DOMDocument();
$doc->loadXML($xml);
$e = $doc->getElementsByTagName('a')->item(0);

print $doc->saveXML($e); // <a><b>content</b></a>

ひもづいた DOMDocument がない場合は DOMDocument を構築すれば同様にできます。

<?php
$doc = new DOMDocument();
$doc->appendChild($e);
print $doc->saveXML($e);
id:nannde

素晴らしい!!

期待通りです!

ありがとうございます!!

2010/07/11 00:46:07

その他の回答1件)

id:koriki-WeKan No.1

回答回数342ベストアンサー獲得回数20

ポイント5pt

>DOMElementオブジェクトのタグ付き文字列を取得できますか?

できない。

どこまでがタグが指定してやらなければ、DOMとして成り立たないから。

id:nannde

ありがとうございます!

理由も示していただきまして、非常に助かりました。

ありがとうございますm(_ _)m

2010/07/10 14:12:01
id:const No.2

回答回数3ベストアンサー獲得回数3ここでベストアンサー

ポイント65pt

DOMDocument->saveXML() の第一引数に DOMElement を渡せます。

<?php
$xml = '<root><node><a><b>content</b></a></node></root>';
$doc = new DOMDocument();
$doc->loadXML($xml);
$e = $doc->getElementsByTagName('a')->item(0);

print $doc->saveXML($e); // <a><b>content</b></a>

ひもづいた DOMDocument がない場合は DOMDocument を構築すれば同様にできます。

<?php
$doc = new DOMDocument();
$doc->appendChild($e);
print $doc->saveXML($e);
id:nannde

素晴らしい!!

期待通りです!

ありがとうございます!!

2010/07/11 00:46:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません