2012-01-04 99 views
1

中剥离属性命名空间我有这样的:引入nokogiri解析

<style:style style:name="MYBOLD" style:family="text" style:parent-style-name="Standard"> 
    <style:text-properties style:font-name="Arial" style:font-name-complex="Arial" fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/> 
</style:style> 

注意属性是如何有一个命名空间。

当我分析它,像这样:

Nokogiri::XML.fragment(xmltext) 

这似乎已经失去了其命名空间的标记和属性都!有什么办法可以保存这些吗?

+0

你为什么要处理它作为一个片段,而不是解析整个文档? – 2012-01-04 12:08:44

+0

因为它是一个将被添加到文档其他地方的片段。 – 2012-01-04 12:56:15

回答

3

引入nokogiri是盲目的,除了(1)那些在根节点上,和(2)你自己注册任何命名空间。由于定义片段没有根节点,因此您必须自己提供名称空间信息。

我注意到,构造函数DocumentFragment有一个可选的上下文节点,从它可以搜集命名空间信息。既然你已经在你的意见,你有,你将插入片段的文件指出,只要命名空间在该文件中正确注册你也许可以使用它的上下文信息。