我需要解析格式如下的文本块:
Today the weather is excellent bla bla bla.
<temperature>35</temperature>.
I'm in a great mood today.
<item>Desk</item>
我想解析这样的文本,并将其转换为类似于这样的数组:
$array[0]['text'] = 'Today the weather is excellent bla bla bla. ';
$array[0]['type'] = 'normalText';
$array[1]['text'] = '35';
$array[1]['type'] = 'temperature';
$array[2]['text'] = ". I'm in a great mood today.";
$array[2]['type'] = 'normalText';
$array[3]['text'] = 'Desk';
$array[3]['type'] = 'item';
本质上,我希望数组以与原始文本相同的顺序包含所有文本,但分为以下类型:普通文本(表示不在任何标签之间的内容)和其他类型,如温度、项目、由文本之间的标签决定。
有没有办法做到这一点(即使用正则表达式将文本分成普通文本和其他类型)或者我应该在幕后将文本转换为结构正确的文本,例如:
<normal>Today the weather is excellent bla bla bla.</normal>
<temperature>35</temperature>.
<normal> I'm in a great mood today.</normal><item>Desk</item>
在它尝试解析文本之前?