В моем XML,Необходимо выбрать конкретный элемент, кроме его одним из потомка
<section level="2">
<heading class="hdgautonum2" level="2">
<inline style="\-ilx-tab-stops: left blank 0tw; ">
<gentext type="headingnumberstring">1.5 </gentext>
<deleted author="Michele Staple" date="Wed, 17 Aug 2011 18:18:00 BST">Overview</deleted>
<inserted author="Michele Staple" date="Wed, 17 Aug 2011 18:18:00 BST">Chapter summary</inserted>
</inline>
</heading>
...
</section>
и, на мой XSLT,
<xsl:for-each select="child::section[@level='2']">
<xsl:variable name="subsecHead" select="if (heading//inserted) then (heading//*[not(name()='deleted')]) else heading"/>
примечание: я не нужно deleted
к выходу, так , я сделал, что исключительные (я имею в виду не())
, но я эта ошибка
XPTY0004: Последовательность более одного элемента не допускается в качестве первого аргумента подстроки() («1.5 резюме OverviewChapter», «1,5», ...)
Моя цель состоит в том, чтобы выбрать heading
и все его потомки, за исключением deleted
содержимого элемента, если элемент заголовка имеет inserted
. Кроме того, просто выбрать только элемент heading
. Иногда элемент заголовка имеет элемент inserted
, или может не быть.
Имею ли я смысл?
Там нет использование 'substring' функции в фрагменте кода вы в комплект поставки. Что вы на самом деле пытаетесь достичь здесь? –
Ошибка указывает на функцию подстроки, но вы не показываете ее в своем XSLT. Можете ли вы обновить свой вопрос, чтобы показать больше XML и XSLT? –
Привет: Я отредактировал свой вопрос, пожалуйста, посмотрите – Sakthivel