首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Collective.xdv中的local-name()支持

Collective.xdv中的local-name()支持
EN

Stack Overflow用户
提问于 2011-04-07 17:30:55
回答 2查看 609关注 0票数 3

我有一个Plone 3.5网站,我试图嵌入一个collective.xdv主题的内容简单社会的FB一样的行动。FB Like函数嵌入在XML标记中

代码语言:javascript
复制
<fb:like></fb:like>

我正在尝试通过以下方式选择其XPATH

代码语言:javascript
复制
//*[local-name()="like"]

但是,我没有看到任何输出。在collective.xdv中是否支持上述功能?在XPATH中有没有其他选择fb:like标签的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-08 23:42:46

lxml和xdv/diazo使用的libxml2 HTMLParser去掉了名称空间前缀,因此您应该能够使用“//HTMLParser”选择它。

您需要添加一些xslt代码来修复这些标记,因为它们必须呈现为才能工作:

代码语言:javascript
复制
<xsl:template match="activity|add-profile-tab|bookmark|comments|friendpile|like|like-box|live-stream|login-button|pronoun|recommendations|serverFbml|profile-pic|user-status">
  <xsl:element name="fb:{local-name()}" xmlns:fb="http://www.facebook.com/2008/fbml">
    <xsl:apply-templates select="@*|node()"/>
  </xsl:element>
</xsl:template>

虽然可以使xdv/diazo与XMLParser一起工作,但您需要确保添加了一个xmlns:fb="...“声明到您的文档,并且您所有的输入都是有效的xhtml,这在基于浏览器的html编辑器中是很难保证的。

劳伦斯

票数 2
EN

Stack Overflow用户

发布于 2011-04-08 11:32:11

aiui,这不是本地名称的工作方式。您需要匹配名称空间限定的标记,然后local- name ()返回未限定的名称。我相信//*只返回默认名称空间中的一个标签节点集。

你试过//fb:like吗?我知道,这太容易了-我认为这是错误的-但话又说回来,it is easy :-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5578910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档