поддержка local-name () в Collective.xdv - PullRequest
3 голосов
/ 07 апреля 2011

У меня есть сайт Plone 3.5, и я пытаюсь встроить действие Simple Social в FB Like для содержимого в теме коллективной. Xdv. Функция FB Like встроена в тег XML

<fb:like></fb:like>

Я пытаюсь выбрать XPATH через

//*[local-name()="like"]

Однако я не вижу никакого вывода. Поддерживается ли вышеприведенное в файлеольном файле .xdv? Есть ли другой способ выбрать тег fb: like в XPATH?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

HTMLxarar libxml2, используемый lxml и, следовательно, xdv / diazo, пресекает префиксы пространства имен, поэтому вы можете выбрать его с помощью "//like".

. Вам нужно будет добавить код xslt, чтобы исправитьэти теги, так как они должны быть отображены так, чтобы они работали:

<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-редакторов.

Laurence

0 голосов
/ 08 апреля 2011

aiui, это не так, как работает локальное имя.Вам нужно сопоставить тег, соответствующий пространству имен, а затем local-name () возвращает неполное имя.Я считаю, что //* возвращает только набор узлов тегов в пространстве имен по умолчанию.

Вы пробовали //fb:like?[Я знаю, это слишком просто - и я думаю, что это неправильно - но опять же, это просто просто :-)]

...