解析Nokogiri的XML文档

时间:2014-10-25 11:15:43

标签: ruby xml parsing xml-parsing nokogiri

我有一个XML文档,其中有许多标记精简(在标记中:

<marker city="City" address="street" coords="52.386912449620866, 16.983248591423035" desc="tel. 061 874 96 69<br><br>Poniedziałek-piątek 9:00-20:00<br>Sobota 9:00-20:00<br>Niedziela 10:00-17:00" photo="" wa_firstname="861" open="1"/>

我想通过Nokogiri解析它。

第一步:

dom = Nokogiri::XML(page, nil, "UTF-8")

第二

items = dom.xpath("//markers//marker")

每个marker的结果是:

<marker city="City" address="street" coords="52.386912449620866, 16.983248591423035" desc="tel. 061 874 96 69"/>

但我希望:

<marker city="City" address="street" coords="52.386912449620866, 16.983248591423035" desc="tel. 061 874 96 69<br><br>Poniedziałek-piątek 9:00-20:00<br>Sobota 9:00-20:00<br>Niedziela 10:00-17:00" photo="" wa_firstname="861" open="1"/>

为什么会削减desc属性?我需要这个。

我将它用于其他XML文档,一切正常。

1 个答案:

答案 0 :(得分:0)

这不是格式良好的XML:您不能将标记放在属性值中。你需要像这样转义标签:

<marker city="City" address="street" coords="52.386912449620866, 16.983248591423035" desc="tel. 061 874 96 69&lt;br&gt;&lt;br&gt;Poniedziałek-piątek 9:00-20:00&lt;br&gt;Sobota 9:00-20:00&lt;br&gt;Niedziela 10:00-17:00" photo="" wa_firstname="861" open="1"/>

您可以使用许多XML验证程序来检查您的文件,包括http://www.w3schools.com/xml/xml_validator.asp等在线文件和xmllint等命令行工具。