/ / Защо XML :: Simple изравнява тази бележка на Tomboy? - xml, perl

Защо XML :: Simple изравнява тази бележка за Tomboy? - xml, perl

Опитвам се да анализирам a Томбой бележка, в която има връзка към друга бележка. 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 модул, който ще разбере това правилно?

Отговори:

5 за отговор № 1

XML ::Simple не е подходящ модул за синтактичен анализ за общ XML анализ. Проектиран е с една цел, а именно: анализиране на конфигурационни файлове в XML формат. Така че опростява донякъде данните - или много, в зависимост от това с какво ги подавате. Ако ви е грижа за реда на текста и таговете, не бива да използвате този модул.


2 за отговор № 2

Горното е изцяло валиден XML. Имате отварящ елемент, последван от текстов възел, последван от отварящ елемент.

Предполагам (може би), че текстът, който „анализирате“, не е бил избегнат правилно, преди да го вмъкнете в възела от най-високо ниво. Напр. Може би Трябва бъда

What"s &lt;link:internal&gt;in use&lt;/link:internal&gt;

Тогава това би довело до получаване на текста като един текстов възел и съдържанието да не бъде анализирано (ако чета това правилно).