У меня есть ниже фрагмент XMLвызов другой шаблон в Regex
<title>Conduct of external affairs <content-style font-style="italic">via</content-style> NGOs</title>
здесь, когда я пытаюсь сопрягать с Regex он бросает мне ошибку
Шаблон я использую это
<?xml version='1.0'?>
<xslt:stylesheet version="2.0" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="Conjunction">(of)|(to)|(and)|(the)</xsl:param>
<xsl:template match="title">
<xsl:call-template name="changeUpperCase">
<xsl:with-param name="Text" select="text()"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="changeUpperCase">
<xsl:param name="Text"/>
<xsl:value-of select="for $EachToken in tokenize(lower-case($Text), ' ')
return
if(matches($EachToken, $Conjunction))
then
$EachToken
else
concat(upper-case(substring($EachToken, 1, 1)), substring($EachToken, 2))"/>
</xsl:template>
</xslt:stylesheet>
ошибка я получаю это
XSLT 2.0 Debugging Error: Error: file:///C:/Users/u0138039/Desktop/Proview/HK/The%20Law%20of%20the%20Hong%20Kong%20Constitution/The%20Law%20of%20the%20Hong%20Kong%20Constitution/XSLT/Chapters.xsl:39: 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')
Я также объявил шаблон для контента, но я не могу узнать, как его связать.
<xsl:template match="content-style">
<xsl:choose>
<xsl:when test="./@format">
<span class="{concat('format-',@format)}">
<xsl:apply-templates/>
</span>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="fontStyle">
<xsl:value-of select="concat('font-style-',@font-style)"/>
</xsl:variable>
<span class="{$fontStyle}">
<xsl:value-of select="."/>
<xsl:apply-templates select="para"/>
</span>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
но выше шаблон работает, если я использую ниже XML-фрагмент кода
<title>IS HONG KONG AN INTERNATIONAL PERSON?</title>
Случай 2:
<title>PREPARATION FOR TRANSFER OF SOVEREIGNTY</title>
это должно быть преобразовано в
Preperation for Transfer of Sovereignty
, пожалуйста, дайте мне знать, как я могу solv e этот вопрос.
Благодаря
Привет @Martin это работает как шарм. Большое спасибо. Но мне нужно маленькое tweek в шаблоне, который вы указали выше, мне нужно увидеть, что первая буква - это кепки, если это не то, что я должен использовать ее заглавными. Еще раз спасибо, пожалуйста, посмотрите мой вопрос 2. – user2423959
Я думаю, что код, который мы в настоящее время преобразуем «Подготовка к передаче суверенитета» в «Подготовка к передаче суверенитета», поэтому 't'' передачи' преобразуется в 'T'. Что еще не хватает? –
Прошу прощения за неправильный ввод, я обновил его сейчас, на самом деле мне нужно преобразовать «ПОДГОТОВКУ ДЛЯ ПЕРЕДАЧИ СУБЪЕКТРОВАНИЯ» в «Препарат для передачи суверенитета», но теперь он преобразуется как «Подготовка к передаче суверенитета» и также «КАК ВЫСОКАЯ - & # x201C; ВЫСОКАЯ СТЕПЕНЬ АВТОНОМИИ & # x2019; OF HONG KONG? 'Неправильно преобразуется. – user2423959