Я пытаюсь разобрать заметку Tomboy , в которой есть ссылка на другую заметку. XML выглядит примерно так:
<?xml version="1.0" encoding="utf-8"?>
<note version="0.3" xmlns:link="http://beatniksoftware.com/tomboy/link" xmlns:size="http://beatniksoftware.com/tomboy/size" xmlns="http://beatniksoftware.com/tomboy">
<title>Our IP Blocks</title>
<text xml:space="preserve"><note-content version="0.1">Our IP Blocks
What's <link:internal>in use</link:internal>?</note-content></text>
<last-change-date>2009-03-10T10:24:36.3730770-04:00</last-change-date>
<last-metadata-change-date>2009-03-10T10:24:36.3730770-04:00</last-metadata-change-date>
<create-date>2009-03-10T10:23:14.2936280-04:00</create-date>
<cursor-position>92</cursor-position>
<width>450</width>
<height>289</height>
<x>0</x>
<y>27</y>
<open-on-startup>False</open-on-startup>
</note>
Я анализирую это с помощью XML :: Simple , и он вытягивает узел <link:internal />
в отдельный объект в perl.
РЕДАКТИРОВАТЬ: Результирующий объект (для узла <text />
выглядит следующим образом. Обратите внимание, что «link: internal» является отдельной сущностью от «content».
'text' => {
'xml:space' => 'preserve',
'note-content' => {
'version' => '0.1',
'link:internal' => 'in use',
'content' => [
'Our IP Blocks
What\'s ',
'?'
]
}
}
Это ошибка, или я сумасшедший? Все валидаторы предполагают, что это допустимый XML, но я никогда не видел его с тегом, вложенным в текст, подобный этому.
Если это ошибка, кто-нибудь знает другой XML-модуль, который исправит это?