我已经取得了一些成功,由于StackOverflow的社区的帮助下,修改与jsTree使用复杂的XML源。 不过现在我已经是可用的数据,它是唯一的,所以如果我手动编辑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();
?>