我遇到字符串操作问题。
这是用我的字符串操作来实现的:
我有什么:
<item name="RFSF "Blindspot"" type="project" id="34"/>
我想在“”之前添加一个换行符,它还应该gsub所有现有的空格。
这是XML生成器:
xmlmenu.item(:name=> convert_html_entities(kidsmovies[n].name), :type=>"project", :id=> kidsmovies[n].id)
我希望做的例子:
xmlmenu.item(:name=> convert_html_entities(kidsmovies[n].name).gsub(remove all whitespace).gsub(add one whitespace between the words).gsub.(create a linebreak just before ""), :type=>"project", :id=> kidsmovies[n].id)
答案 0 :(得分:1)
首先,你有一个错误的XML,它必须是:
<item name="RFSF \"Blindspot\"" type="project" id="34"/>
然后,削减额外的空间:
string.gsub(/\S+/).map.join(' ')
或:
string.split(' ').join(' ')
但是create a linebreak just before ""
是什么?
答案 1 :(得分:1)
把它放在帮手中:
def format_name(str)
html_escape(str.gsub(/\s+/, " ")) + "\n"
end
然后使用它而不是convert_html_entities,这是无效的(因为它没有转义引号,使XML输出无效)。喜欢这样:
xmlmenu.item(:name=> format_name(kidsmovies[n].name), :type=>"project", :id=> kidsmovies[n].id)