Разбор строк на рельсах - PullRequest
       9

Разбор строк на рельсах

1 голос
/ 28 ноября 2010

У меня есть строка, представляющая собой набор тегов XML.

По сути, есть содержимое одного тега, который я хочу, и игнорирую все остальное:

Ввод будет выглядеть так:

<Some><XML><stuff>
<title type='text'>key</title>
<Some><other><XML><stuff>

Вывод будет выглядеть следующим образом:

key

Я не уверен, подходит ли XML, поскольку кажется, что этот конкретный XML не очень структурирован.

Может ли регулярное выражение сделать это в RoR, или это больше просто сопоставление с образцом (true или false) в ruby ​​на рельсах?

Большое спасибо!

Приветствия, Zigu

Ответы [ 2 ]

2 голосов
/ 28 ноября 2010

Нет . Если ваш источник может не быть строго допустимым XML, я настоятельно рекомендую вам использовать Nokogiri .

Обработайте источник как документ HTML и извлеките необходимую информацию следующим образом:

doc = Nokogiri::HTML("Your string with <key>some value</key>"))
doc.search('key').each do |value|
  puts value.content # do whatever you want
end
0 голосов
/ 28 ноября 2010

Вот почему вы не анализируете xml с регулярным выражением: RegEx соответствует открытым тегам, кроме автономных тегов XHTML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...