Я ниже XMLSubstring перед броском ошибки
<?xml version="1.0" encoding="UTF-8"?>
<body>
<p>Industrial drawing: Any creative composition</p>
<p>Industrial drawing: Any creative<fn>
<fnn>4</fnn>
<fnt>
<p>ftn1"</p>
</fnt>
</fn> composition
</p>
</body>
и ниже XSL.
<xsl:template match="p">
<xsl:choose>
<xsl:when test="contains(substring-before(./text(),' '),'Article')">
<xsl:text>sect3</xsl:text>
<xsl:value-of select="./text()"/>
</xsl:when>
<xsl:when test="contains(substring-before(./b/text(),' '),'Section')">
<xsl:text> Sect 2</xsl:text>
<xsl:value-of select="./text()"/>
</xsl:when>
<xsl:when test="contains(substring-before(./b/text(),' '),'Chapter')">
<xsl:text> Sect 1</xsl:text>
<xsl:value-of select="./text()"/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Вот мой XSL работает отлично для <p>Industrial drawing: Any creative composition</p>
но ниже Case
<p>Industrial drawing: Any creative<fn>
<fnn>4</fnn>
<fnt>
<p>ftn1"</p>
</fnt>
</fn> composition
</p>
он бросает мне ошибку ниже.
XSLT 2.0 Debugging Error: Error: file:///C:/Users/u0138039/Desktop/Proview/ASAK/DIFC/XSLT/tabel.xslt:38: Wrong occurrence to match required sequence type - Details: - XPTY0004: The supplied sequence ('2' item(s)) has the wrong occurrence to match the sequence type xs:string ('zero or one')
, пожалуйста, дайте мне знать, как я могу исправить это и получить требуемый текст.
Благодаря
Не следует 'substring-before (./ text(), '')' be 'su bstring-before (./ text(), '') 'i.e подстрока перед ** пространством **? –
Привет @ michael.hor257k, у меня небольшое сомнение, если у меня есть что-то вроде
Глава 12
, есть ли способ, что я могу получить текст без использования 'подстрок-перед тем (./ б/с/text(), '') 'i означает прямой тип, например, используя' * '. Спасибо – RakeshНе отвечает ли Ян Ян Робертс эту возможность? –