Ruby 使用Nokogiri处理片段中的名称空间

Ruby 使用Nokogiri处理片段中的名称空间,ruby,nokogiri,radiant,Ruby,Nokogiri,Radiant,我必须将Radiant CMS中构建的HTML片段转换为新格式。这需要解析如下所示的HTML和“R标记”: <r:asset:image size="original" align="right" id="3445" hspace="20" width="300"/> <r:profile:link id="815">Henry Trudeau</r:profile:link> 及 fragment.css(“r |资产|图像”) #Nokogiri::CS

我必须将Radiant CMS中构建的HTML片段转换为新格式。这需要解析如下所示的HTML和“R标记”:

<r:asset:image size="original" align="right" id="3445" hspace="20" width="300"/>
<r:profile:link id="815">Henry Trudeau</r:profile:link>

fragment.css(“r |资产|图像”)
#Nokogiri::CSS::SyntaxError:在“[#]之后出现意外的“|”

部分问题在于名称空间无效。部分问题在于名称空间无效。看见
fragment = Nokogiri::HTML.fragment(content)
fragment.xpath(".//r:asset:image")
# Nokogiri::XML::XPath::SyntaxError: ERROR: Undefined namespace prefix: .//r:asset:image
fragment.css("r|asset|image")
# Nokogiri::CSS::SyntaxError: unexpected '|' after '[#<Nokogiri::CSS::Node:0x0056494e6891e0 @type=:ELEMENT_NAME, @value=["r:asset"]>]'