Hpricot 搜索某一特定命名空间下的所有标签
例如,我有以下代码:
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title><io:content part="title" /></title>
<link rel="icon" href="/document/7e9f29e2-cdee-4f85-ba25-132fa867aa90/latest" type="image/x-icon" />
<n1:content description="Standard CSS" uuid="d069071c-3534-4945-9fb6-2d7be35a165e" />
<n1:term>Content Development</n1:term>
</head>
这个 XHTML 片段并不严格合法,因为之前没有声明名称空间,所以我无法使用具有更好名称空间支持的 Nokogiri。
我想做一次搜索,可以找到节点
和
以及“n1”命名空间下的所有标签。
如何实现这一目标?谢谢!
For example I have the following code:
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title><io:content part="title" /></title>
<link rel="icon" href="/document/7e9f29e2-cdee-4f85-ba25-132fa867aa90/latest" type="image/x-icon" />
<n1:content description="Standard CSS" uuid="d069071c-3534-4945-9fb6-2d7be35a165e" />
<n1:term>Content Development</n1:term>
</head>
This XHTML snippet is not strictly legal because there is no namespace declared before so I cannot use Nokogiri which has better namespace support.
I want to do a single search that can find both the node <n1:content>
and <n1:term>
and all the tags under 'n1' namespace.
How to achieve that? Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来 Hpricot 并没有完全处理命名空间。
您可以选择是否知道该元素,而不管前缀如何:
...但这不是您所要求的。
这是我的解决方法:首先使用正则表达式查找所有命名空间元素,然后使用 Hpricot 搜索那些元素:
It looks like Hpricot does not handle namespaces that fully.
You can select if you know the element regardless of prefix:
... but this is not what you asked.
Here's my hack workaround: find all namespace elements using regex first, then search for those using Hpricot: