参考页:http://www.ncbi.nlm.nih.gov/pubmed/?term=NS044283[GR]&dispmax=200&report=xml从HTML中提取XML?
XML嵌入在返回的HTML页面的<pre>
标记下。 我可以提取<pre>
标记的内容,但我无法将其正确转换为XML。 我尝试使用NodeSet类的to_xml
方法,但似乎行结尾(\n
)搞乱了解析。
这里是我的代码片段:
url = "http://www.ncbi.nlm.nih.gov/pubmed/?term=NS044283[GR]&dispmax=200&report=xml"
doc = Nokogiri::XML(open(url))
pre = doc.xpath('//pre')
xml = pre.to_xml
contents = Nokogiri::XML(xml)
articles = contents.xpath('\\PubmedArticle')
(article = [])
'to_xml'告诉Nokogiri将节点内容转换为XML,导致它重新编码'<', '>'和其他“非法”字符,然后您必须解码。使用'text'和Nokogiri将解码编码字符,然后您可以将其解析为XML。 –