Snažím sa analyzovať a Divoška poznámka, ktorá má v sebe odkaz na inú poznámku. XML vychádza takto:
<?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>
Rozoberám to s XML :: Simple, a vyťahuje sa <link:internal />
uzol do samostatného objektu v rámci Perl
EDIT: Výsledný objekt (pre <text />
uzol vyzerá takto. Upozorňujeme, že parameter „link: internal“ je samostatná entita od obsahu.
"text" => {
"xml:space" => "preserve",
"note-content" => {
"version" => "0.1",
"link:internal" => "in use",
"content" => [
"Our IP Blocks
What"s ",
"?"
]
}
}
Je to chyba, alebo som sa zbláznil? Všetci overovatelia naznačujú, že ide o platný formát XML, ale nikdy predtým som to nevidel so značkou vnorenou do tohto textu.
Ak ide o chybu, vie niekto o inom module XML, ktorý získa toto právo?
odpovede:
5 pre odpoveď č. 1XML ::Simple nie je vhodný modul na analýzu pre všeobecnú analýzu XML. Bol navrhnutý s jediným cieľom, a to: syntaktická analýza konfiguračných súborov vo formáte XML. Takže to údaje trocha - alebo veľmi zjednodušuje - v závislosti od toho, čím ich kŕmite. Ak vám záleží na poradí textu a značiek, tento modul by ste nemali používať.
2 pre odpoveď č. 2
Vyššie uvedené je úplne platné XML. Máte úvodný prvok, za ktorým nasleduje textový uzol a za ním úvodný prvok.
Myslím (možno), že text, ktorý analyzujete, nebol správne uniknutý pred vložením do uzla najvyššej úrovne. Napríklad mali by byť
What"s <link:internal>in use</link:internal>
To by potom viedlo k tomu, že by sa text dostal do jedného textového uzla a obsah by nebol analyzovaný (ak to čítam správne).