возвращает пустой узел - PullRequest
0 голосов
/ 23 марта 2010

Я пытаюсь получить заголовок простого HTML-документа для построения карты сайта.Но всегда возвращайте пустое значение.Я отладил это и обнаружил, что документ (содержимое) возвращает узлы документа.Это выглядит так. alt text http://www.freeimagehosting.net/uploads/f7caf412dc.png Но я не смог получить доступ к документу (контенту) / html или как-то так.Пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 23 марта 2010

Может помочь еще немного кода, но в таких ситуациях первым виноват пространство имен.Я вижу, что ваши узлы находятся в пространстве имен XHTML, но вы не используете префикс пространства имен в своем XPath.

Вы должны объявить префикс пространства имен в своей таблице стилей следующим образом:

<xsl:stylesheet 
  version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:h="http://www.w3.org/1999/xhtml"
>

И затем используйте этот префикс в вашем XPath, как это:

document(content)/h:html
1 голос
/ 23 марта 2010

Если ваши элементы xml находятся в пространстве имен, даже если это пространство имен по умолчанию для документа, вы должны использовать префиксы пространства имен в любых выражениях XPath и правилах сопоставления шаблонов.Это имя URI, а не префикс, который имеет значение.Обратите внимание, что атрибуты не будут находиться в пространстве имен по умолчанию, они имеют пространство имен только в том случае, если их имя имеет префикс.

Кроме того, выражение XPath, содержащее //, обычно менее эффективно, чем выражение, которое этого не делает.

<xsl:stylesheet version="1.0"
            xmlns:h="http://www.w3.org/1999/xhtml"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<!-- and elsewhere in your stylesheet -->
<xsl:value-of select="document(content)/h:html/h:head/h:title"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...