Tom Různé 10. 1. 2022 10:59 22. 12. 2021 14:11

XML parser (fbXmlPageParser) nevrací text xml.item.txt pokud je součástí textu html poznámka <!-- nejaka poznamka --> . Řetězec xml.item.txt zůstane prádný.

Např. takto  <realtime><data realtime="temp">0.7<!--outsideTemp--></data></realtime>
Hodnotu 0.7 takto nelze získat.

Odpovědi 3

M.B. 21. 12. 2021 9:48

V tomto případě blok vrátí text ve chvíli, kdy narazí na XML komentář. V pársování je tedy o krok víc, kdy se zpracovává komentář a vrátí se pouze naplněné xml.item.txt s hodnotou textu, který komentáři předcházel.

Uvědomuji si, že toto chování komplikuje zpracování a prověřím, zda by pro řadu CP-2xxx nešla tato funkce vylepšit.

Tom 21. 12. 2021 11:50

Dobrý den.

Právě že to nevrátí ani při té poznámce.

V programu mám pro otestování

IF XmlDocParser.done THEN 
         if (xml.item.txt<>'') then test:= xml.item.txt; end_if;
END_IF;

Tedy pokud jakýkoliv parsované prvek má neprázdnou hodnotu tak ulžit do test. A hodnota která tam zůstane je bohužel poslední bez poznámky.

Tedy při něčem takovém jako níže, v proměné test zůstává 06:40:51.  Pokud by to vracel i při poznámce bylo by tam např. -0.1
Celé xml v příloze.

...
<realtime><data realtime="station_date">Tue, 21 Dec 2021</data></realtime>
<realtime><data realtime="station_time">10:43 GMT</data></realtime>
<realtime><data realtime="sunrise">06:40:51</data></realtime>
<realtime><data realtime="sunset">14:52:20<!--sunsetTime--></data></realtime>
<realtime><data realtime="moonrise">  <!--moonriseTime--></data></realtime>
<realtime><data realtime="moonset">  <!--moonsetTime--></data></realtime>
<!--TEMPERATURE-->
<realtime><data realtime="temp">-0.9<!--outsideTemp--></data></realtime>
<realtime><data realtime="high_temp">-0.1<!--hiOutsideTemp--></data></realtime>
...

 

M.B. 22. 12. 2021 14:11

Omlouvám se za chybnou informaci, testoval jsem na starší verzi knihovny, která se chovala, tak jak jsem popisoval. Verze knihovny 2.0 opravdu texty nevrací. Přes Mosaic Updater by nyní měla být dostupná verze 2.1, která opět vrací text předcházející komentář.
Přiložený soubor obsahuje archiv projektové skupiny, kde je verze knihovny 2.1 otestována proti Vámi dodanému souboru.

Tento dotaz je vyřešený.