Ho visto diverse cose su questo, ma non è sembrato che funzioni fino ad ora. Sto analizzando un xml tramite un url usando nokogiri su rails 3 ruby 1.9.2.cercando di ottenere contenuti all'interno di tag cdata nel file xml utilizzando nokogiri
un frammento del xml assomiglia a questo:
<NewsLineText>
<![CDATA[
Anna Kendrick is ''obsessed'' with 'Game of Thrones' and loves to cook, particularly creme brulee.
]]>
</NewsLineText>
Sto cercando di analizzare questo fuori per ottenere il testo associato alla NewsLineText
r = node.at_xpath('.//newslinetext') if node.at_xpath('.//newslinetext')
s = node.at_xpath('.//newslinetext').text if node.at_xpath('.//newslinetext')
t = node.at_xpath('.//newslinetext').content if node.at_xpath('.//newslinetext')
puts r
puts s ? if s.blank? 'NOTHING' : s
puts t ? if t.blank? 'NOTHING' : t
Quello che ricevo in cambio è
<newslinetext></newslinetext>
NOTHING
NOTHING
Quindi so che i miei tag sono denominati/digitati correttamente per ottenere nei dati newslinetext, ma il cdata il testo non compare mai.
Cosa devo fare con nokogiri per ottenere questo testo?
guardare il vostro caso, credo nokogiri sarà downcase nomi html ma non xml – pguardiario
@pguardiario: Aaron sta usando parser HTML di Nokogiri, non il suo parser XML. –
Eri tutto corretto. Ho usato involontariamente il parser HTML che mi ha costretto a usare lettere minuscole. Poi, quando ho provato a utilizzare il parser XML, non ho ottenuto risultati (perché stavo già usando lettere minuscole). Dopo aver visto le risposte qui, ho realizzato la mia idiozia e sono passata alla case sensitive e all'XML. Funziona perfettamente. grazie –