Ruby XML Replacing - PullRequest
       5

Ruby XML Replacing

0 голосов
/ 30 сентября 2011

У меня есть файл XML, и мне нужно заменить текст между двумя тегами новой строкой. Теги: <<ConnectionString>ConnectionString>THE OLD TEXT<<ConnectionString>/ConnectionString>

Мне нужно изменить это значение на <<ConnectionString>ConnectionString>MY NEW TEXT<<ConnectionString>/ConnectionString>

Кажется, я ничего не могу найти в Интернете, и вижу, что использование регулярных выражений - плохая идея?

Обратите внимание, что этот файл содержит более 1

<<ConnectionString>ConnectionString>THE OLD TEXT<<ConnectionString>/ConnectionString>

строк!

Может ли кто-нибудь указать мне правильное направление или пример?Andrew

Ответы [ 3 ]

2 голосов
/ 30 сентября 2011

Nokogiri отлично подходит для таких вещей.См. Nokogiri :: Node # content = метод

#!/usr/bin/env ruby

require 'nokogiri'

doc = Nokogiri.XML(DATA)             # create a new nokogiri object, this could be a string or IO type (anything which responds to #read)
element = doc.at('ConnectionString') # fetch our element
element.content = "MY NEW TEXT"      # change the content
puts doc #=> <?xml version="1.0"?>\n<ConnectionString>MY NEW TEXT</ConnectionString>


__END__
<ConnectionString>THE OLD TEXT</ConnectionString>
0 голосов
/ 01 октября 2011

В целом я согласен использовать nokogiri вместо regex в xml, но в этом случае я считаю, что это излишне.

xml = open(xmlfile).read.gsub /<ConnectionString>THE OLD TEXT<\/ConnectionString>/, '<ConnectionString>MY NEW TEXT</ConnectionString>'
0 голосов
/ 30 сентября 2011

Используйте nokogiri для работы с файлами XML.См. this для конкретной задачи.

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