Опитвам се да анализирам 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 за отговор № 1XML ::Simple не е подходящ модул за синтактичен анализ за общ XML анализ. Проектиран е с една цел, а именно: анализиране на конфигурационни файлове в XML формат. Така че опростява донякъде данните - или много, в зависимост от това с какво ги подавате. Ако ви е грижа за реда на текста и таговете, не бива да използвате този модул.
2 за отговор № 2
Горното е изцяло валиден XML. Имате отварящ елемент, последван от текстов възел, последван от отварящ елемент.
Предполагам (може би), че текстът, който „анализирате“, не е бил избегнат правилно, преди да го вмъкнете в възела от най-високо ниво. Напр. Може би Трябва бъда
What"s <link:internal>in use</link:internal>
Тогава това би довело до получаване на текста като един текстов възел и съдържанието да не бъде анализирано (ако чета това правилно).