Zdravim Vas,
problemy se daji ocekavat :
1. v definici xpath vyrazu
2. ve formulaci sql prikazu pouziteho v kontextu Perlu
ad 1)
Rekl bych ze tady mate vse spravne, ovsem za predpokladu, ze
vychazim z xml, ktere jste zverejnil v uvodu tohoto threadu.
Mala drobnost, kdybyste si chtel prodlouzit zivot,
tak jste mohl psat :
my $nodelist = $xp->find ("/oval_definitions/definitions/definition");
a v cyklu foreach 'dolovat' jednotlive hodnoty takto :
$row->find ('@id')->string_value (),
$row->find ('metadata/title')->string_value (),
$row->find ('metadata/advisory/severity')->string_value (),
$row->find ('metadata/description')->string_value (),
$row->find ('metadata/advisory/issued/@date')->string_value ()
Jedna se ale o pomerne male prodlouzeni ....
Predpokladam, ze jste provedl test spravnosti vyberu hodnot z xml stromu tak,
ze jste namisto sql prikazu vypisoval jednotlive hodnoty treba na konzoli...
Jeste k vete : ".. Myslel jsem, ze takto to bude fungovat tak, ze to do databaziu
nahazi data ze vsech elementu <definition>..."
Neni to pravda s ohledem na xml, ktere jste zde zverejnil. To totiz obsahuje
jediny <definition>, jehoz 'obsah' se 'nahazi' do 'databaziu'
slovo obsah davam umyslne do uvozovek, protoze obsahem <definition> je o hodne vetsi
datove spektrum, nez mate na mysli Vy. Budiz...
ad 2)
Tady bude pravdepodobne problem. Ackoliv je mi Perl spanelskou vesnici, tak uz vidim
potencialni problem ve Vami zformulovanem sql.
Pouzivate zde syntaxi pro tzv 'preparovane' prikazy. Proc ne, ovsem preparovani prikazu
znamena pro db stroj provedeni jakesi predkompilace sql prikazu,
ktera sama o sobe 'nedela nic'.
Praparovany prikaz musite pote fyzicky provest pomoci 'execute' clause,
v intencich syntaxe Perlu.
Mrknete na odkaz vyse, ktery poslal nettezzaumana a prostudujte si
kapitolu 13. Perl and databases. Myslim, ze to by mohlo pomoci.