考虑下面的代码:为什么Nokogiri的to_xhtml从`name`创建新的`id`属性?
require 'nokogiri' # v1.5.2
doc = Nokogiri.XML('<body><a name="foo">ick</a></body>')
puts doc.to_html
#=> <body><a name="foo">ick</a></body>
puts doc.to_xml
#=> <?xml version="1.0"?>
#=> <body>
#=> <a name="foo">ick</a>
#=> </body>
puts doc.to_xhtml
#=> <body>
#=> <a name="foo" id="foo">ick</a>
#=> </body>
注意,已创建新id
属性。
- 谁对此负责,Nokogiri或libxml2?
- 为什么会发生这种情况? (这是一个强制标准?)
我能找到的最接近的是this spec描述如何可以把两者的id
和name
属性具有相同的值。 - 有没有什么办法可以避免这种情况,因为希望在可能有
<a name="foo">
的输入上使用to_xhtml
方法?
这个问题是因为我有一些输入我有id
属性的一个元素和一个单独的元素与name
属性恰好冲突解析。
天哪我只是浪费了我一生的2个小时,直到我意识到它正在这样做... – Blacksad 2013-01-02 09:13:50