Tôi đã thấy một vài điều về điều này, nhưng không có gì có vẻ hoạt động cho đến nay. Tôi đang phân tích cú pháp xml qua url bằng cách sử dụng nokogiri trên đường ray 3 ruby 1.9.2.cố gắng lấy nội dung bên trong các thẻ cdata trong tệp xml bằng nokogiri
Một đoạn xml trông như thế này:
<NewsLineText>
<![CDATA[
Anna Kendrick is ''obsessed'' with 'Game of Thrones' and loves to cook, particularly creme brulee.
]]>
</NewsLineText>
Tôi cố gắng để phân tích này ra để có được những văn bản liên quan đến việc 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
Những gì tôi có được đổi lại là
<newslinetext></newslinetext>
NOTHING
NOTHING
Vì vậy, tôi biết thẻ của mình được đặt tên/viết đúng chính tả để nhận dữ liệu tin tức văn bản, nhưng cdata văn bản không bao giờ xuất hiện.
Tôi cần làm gì với nokogiri để nhận được văn bản này?
xem trường hợp của bạn, tôi tin rằng nokogiri sẽ downcase tên html nhưng không xml – pguardiario
@pguardiario: Aaron đang sử dụng phân tích cú pháp HTML Nokogiri, không phân tích cú pháp XML của nó. –
Bạn đã chính xác. Tôi đã vô tình sử dụng trình phân tích cú pháp HTML đã buộc tôi sử dụng chữ thường. Sau đó, khi tôi cố gắng sử dụng trình phân tích cú pháp XML, tôi không có kết quả (vì tôi đã sử dụng chữ thường). Sau khi nhìn thấy câu trả lời ở đây, tôi nhận ra sự ngu ngốc của tôi và chuyển sang độ nhạy và XML. Hoạt động hoàn hảo. cảm ơn –