首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP解析(特别是用于Tomboy/Gnote解析以在Web上显示/编辑/添加)

PHP解析(特别是用于Tomboy/Gnote解析以在Web上显示/编辑/添加)
EN

Stack Overflow用户
提问于 2013-03-28 02:33:27
回答 2查看 189关注 0票数 1

目前,我正在研究一个新的想法,以便通过PHP解析并显示在网页上的tomboy/gnote注释,以便添加/编辑/查看注释。使用这样的工具,我们就可以创建一个OwnCloud应用程序,从而允许在所有机器之间(通过离线访问)实现一个完整的解决方案,并包含一个Web。在后一阶段,还可以开发Android应用程序。

我对PHP和XML有些陌生,因此需要一些帮助。

这里是一个示例XML文件:

代码语言:javascript
复制
<?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>

这里是我目前的代码:

代码语言:javascript
复制
<?php

$file = "example.note";

$xmlFile = file_get_contents($file) or die('Cant open note'); 
$xml = simplexml_load_string($xmlFile);
print_r($xml); 

?>

,这是输出:

代码语言:javascript
复制
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中显示它呢?

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2013-04-04 02:16:40

您确实需要遍历树并遍历<note-content>中的每个元素。print_r实际上不是一种获得精确输出的方法,也不是它的功能。

对于这种情况,我实际上强烈建议使用XMLReader。对于这样格式松散的xml,它非常好地工作。

最后,您需要做的是遍历每个元素,并且(可能)将标记(例如<bold> )更改为html <strong>标记。为了这个目的,Simplexml会很烂的。

票数 1
EN

Stack Overflow用户

发布于 2014-10-23 08:26:22

Tomboy提供了一个XSLT文件,该文件将tomboy注释转换为HTML --无需编写自定义代码,就可以实现它:

https://git.gnome.org/browse/tomboy/tree/Tomboy/Addins/ExportToHtml/ExportToHtml.xsl

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15673253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档