2

我正在使用 Nokogiri 解析 XML。

我能够检索样式表。但不是每个样式表的属性。

1.9.2p320 :112 >style = xml.xpath('//processing-instruction("xml-stylesheet")').first
=> #<Nokogiri::XML::ProcessingInstruction:0x5459b2e name="xml-stylesheet">
style.name
=> "xml-stylesheet"
style.content
=> "type=\"text/xsl\" href=\"CDA.xsl\""

有没有简单的方法来获取类型、href 属性值?

或者

唯一的方法是解析处理指令的内容(style.content)?

4

2 回答 2

3

我按照以下答案中的说明解决了这个问题。

Nokogiri 可以搜索“?xml-stylesheet”标签吗?

向 Nokogiri::XML::ProcessingInstruction 类添加了新的 to_element 方法

 class Nokogiri::XML::ProcessingInstruction
   def to_element
     document.parse("<#{name} #{content}/>")
   end
 end

 style = xml.xpath('//processing-instruction("xml-stylesheet")').first
 element = style.to_element

检索 href 属性值

 element.attribute('href').value
于 2012-10-25T11:45:32.850 回答
1

你不能那样做吗?

style.content.attribute['type'] # or attr['type'] I am not sure
style.content.attribute['href'] # or attr['href'] I am not sure

检查这个问题如何使用 Nokogiri 访问属性

于 2012-10-25T10:47:14.380 回答