我目前正在研究一个新想法,以便通过 PHP 解析 tomboy/gnote 笔记并显示在网页上,以便添加/编辑/查看笔记。有了这样一个工具,就可以创建一个 OwnCloud 应用程序,从而允许一个完整的解决方案,在所有机器之间进行同步(具有离线访问)并包括一个 Web UI。在后期阶段,人们还可以开发 Android 应用程序。
我对 PHP 和 XML 有点陌生,因此寻求帮助。
这是一个示例 XML 文件:
<?xml version="1.0"?>
<note version="0.3" xmlns:link="http://beatniksoftware.com/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size" xmlns="http://beatniksoftware.com/tomboy">
<title>TEST Note</title><text xml:space="preserve">
<note-content version="0.1" xmlns:link="http://beatniksoftware.com/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size">TEST Note
Normal text
<size:huge>Huge text</size:huge>
<size:large>Large text</size:large>
<size:small>small text</size:small>
<bold>BOLD Text</bold>
<italic>Italic text</italic>
<strikethrough>Striked text</strikethrough>
<highlight>Highlight text</highlight>
<list><list-item dir="ltr">BulletA
<list><list-item dir="ltr">A1
</list-item><list-item dir="ltr">A2
<list><list-item dir="ltr">A2.1
<list><list-item dir="ltr">A2.1.1
<list><list-item dir="ltr">A2.1.1.1
<list><list-item dir="ltr">A2.1.1.1.1
</list-item></list></list-item></list></list-item><list-item dir="ltr">A2.1.2
</list-item></list></list-item><list-item dir="ltr">A2.2
</list-item></list></list-item><list-item dir="ltr">A3
</list-item></list></list-item><list-item dir="ltr">BulletB</list-item></list>
Normal text with space before
And again</note-content>
</text><last-change-date>2013-03-28T02:11:04.603700Z</last-change-date>
<last-metadata-change-date>2013-03-28T02:11:11.012211Z</last-metadata-change-date><create-date>2013-03-28T01:39:08.607520Z</create-date>
<cursor-position>124</cursor-position><selection-bound-position>124</selection-bound-position><width>496</width>
<height>458</height><x>0</x><y>0</y>
<tags><tag>system:notebook:test</tag></tags><open-on-startup>False</open-on-startup></note>
这是我目前拥有的代码:
<?php
$file = "example.note";
$xmlFile = file_get_contents($file) or die('Cant open note');
$xml = simplexml_load_string($xmlFile);
print_r($xml);
?>
这是输出:
SimpleXMLElement Object ( [@attributes] => Array (
[version] => 0.3 )
[title] => TEST Note
[text] => SimpleXMLElement Object (
[note-content] => TEST Note Normal text Normal text with space before And again )
[last-change-date] => 2013-03-28T02:11:04.603700Z
[last-metadata-change-date] => 2013-03-28T02:11:11.012211Z
[create-date] => 2013-03-28T01:39:08.607520Z
[cursor-position] => 124
[selection-bound-position] => 124
[width] => 496 [height] => 458
[x] => 0 [y] => 0
[tags] => SimpleXMLElement Object ( [tag] => system:notebook:test ) [open-on-startup] => False )
如您所见,“注释内容”并未完全收集,因此我正在联系 PHP 大师。我怎样才能解析整个 XML 以便能够以普通 HTML 显示它?
谢谢,