【发布时间】:2017-11-27 11:14:43
【问题描述】:
,大家好!
我有一个 XML 结构,我试图按子字段排序,然后我想要设置样式。我想我想问一下关于对对象进行排序的问题,但由于这并不是我真正要在可交付成果方面工作的目标:-)
XML 看起来很像
<messages>
<message>
<headers>
<From>person</From>
<Date>2014-10-09 19:46:37</Date>
...
<Message-Id>long_id_string@server.dom.ain</Message-Id>
</headers>
<attachments>
<attachment mimetype="image/jpeg" name="att1.jpg" output="/path/to/image"/>
<attachment mimetype="text/plain" name="file.txt" output="/path/to/file"/>
</attachments>
<body>
Message body here. It might
wrap, or it might not.
</body>
</message>
<message>
<headers>
<From>person</From>
<Date>2016-01-01 00:00:00</Date>
...
<Message-Id>other_message_string@server.dom.ain</Message-Id>
</headers>
<attachments/>
<body>
A simple message
</body>
</message>
<message>
<headers>
<From>HTML email sender</From>
<Date>2015-06-06 01:23:45</Date>
...
<Message-Id>horrible_idea@html.mail.ser.ver</Message-Id>
</headers>
<attachments/>
<body>
<div dir="ltr"><div class="gmail_default" style="font-size:small;color:#073763">Good afternoon David & Laura!</div><div class=...
</body>
</message>
</messages>
(当然,虽然它非常缩写,而且更漂亮),我想对 message->headers->Date 字段进行排序。
我已经从这里和那里获取了一些代码,并且我能够将结构吸进一个带有 xml2array 和 XMLtoArray 函数的数组中,我已经提升了我的入门(但还没有关于何时吐出 XML 的消息我已经完成了;我还没有走那么远)。它们不如 SimpleXMLElement 漂亮
$msgobj = new SimpleXMLElement($msgxml)
结构,但是,这让我回到尝试对对象进行排序。我所做的所有谷歌搜索都涵盖了如何对对象数组而不是单个复杂对象进行排序。我确实看到 reference 到 XSLT 神奇地排序,但我完全迷失在那里(什么处理它?排序的内容去哪里?...)。
我最终希望将 XML 吐出——每条消息具有相同的结构和所有相同的字段——按日期排序,并且我希望为下一步应用一些样式到标题和正文。鉴于此,1) 最简单和最好的工作结构是什么,以及 2) 生锈的 PHP 黑客入门的正确方法是什么?
TIA 和汉威
:-D
【问题讨论】:
标签: php arrays xml sorting object