StackOverflow コミュニティの助けを借りて、複雑な XML ソースを jsTree で使用できるように変更したおかげで、ある程度の成功を収めました。ただし、使用可能なデータが得られたので、XML を手動で編集して次の操作を行う場合にのみ使用できます。
- すべての
<user>
タグの名前を<item>
<user>
最初のタグの前にいくつかの要素を削除します'encoding=UTF-8'
を XML オープナーに挿入します- 最後に
<response>
(開始 XML タグ) を次のように変更します。<root>
XML ファイルの例: SampleXML
こことグーグルで非常に多くのページを読んで読みましたが、上記の項目を達成する方法が見つかりません。
ポイント(2) SimpleXMLで読み込んで使用UNSET
することで、不要な部分を削除できることがわかりましたが、残りはまだ困っています。
おそらく、SimpleXML (私がよりよく知っている) を使用してソースを変更し、以前に提供されたヘルプを使用してコードを変更し続けることができると考えました。
<?php
$s = file_get_contents('http://www.fluffyduck.com.au/sampleXML.xml');
$doc1 = simplexml_load_string($s);
unset($doc1->row);
unset($doc1->display);
#$moo = $doc1->user;
echo '<textarea>';
echo $doc1->asXML();
echo '</textarea>';
$doc = new DOMDocument();
$doc->loadXML($doc1);
$users = $doc->getElementsByTagName("user");
foreach ($users as $user)
{
if ($user->hasAttributes())
{
// create content node
$content = $user->appendChild($doc->createElement("content"));
// transform attributes into content elements
for ($i = 0; $i < $user->attributes->length; $i++)
{
$attr = $user->attributes->item($i);
if (strtolower($attr->name) != "id")
{
if ($user->removeAttribute($attr->name))
{
if($attr->name == "username") {
$content->appendChild($doc->createElement('name', $attr->value));
} else {
$content->appendChild($doc->createElement($attr->name, $attr->value));
}
$i--;
}
}
}
}
}
$doc->saveXML();
header("Content-Type: text/xml");
echo $doc->saveXML();
?>