У меня есть XML, подобный этому:Проверьте родитель имеет текст за пределами своих детей
<parent>
<child>child's text</child>
<child>other child's text</child>
parent's text
</parent>
Обратите внимание, что это разрешено иметь несколько элементов ребенка.
Я хотел бы знать, имеет ли родительский элемент текст за пределами его дочерних элементов.
Я пришел к этому решению:
<xsl:if test="normalize-space(parent/child[1]) = normalize-space(parent)">
<xsl:text>No parent text</xsl:text>
</xsl:if>
Я использую parent/child[1]
, потому что функция нормализуют-пространство не принимает последовательность, как это аргумент.
Есть ли лучший способ сделать это?
(я нашел this вопрос по этой теме, но ответ неправильный или вопрос отличается)
родителя/текст() возвращает конкатенацию текста родителя плюс все его детей. – gombost
Извините, не конкатенация. Он возвращает несколько текстовых узлов, содержащих текст узла и его дочерние элементы. Поэтому он не работает с нормализованным пространством в моем решении. – gombost