Как получить pubtitle в ditamap, используя выражения xsl
Для получения значения pubtitle в приведенном ниже ditamap, используя выражения xsl MY Input XML Dita map map
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pubmap
PUBLIC "urn:pubid:com.sam.doctypes:dita:pubmap" "pubmap.dtd">
<pubmap xml:lang="en-US">
<pubtitle>
<mainpubtitle outputclass="book">Sample Word</mainpubtitle>
</pubtitle>
<topicref href="topics/topic_1.dita">
<topicmeta>
<navtitle>Ram-Files-Raj (RFR)</navtitle>
<metadata/>
</topicmeta>
</topicref>
<topicref href="topics/topic_2.dita">
<topicmeta>
<navtitle>Files-Sampletitle (FST)</navtitle>
<metadata/>
</topicmeta>
</topicref>
</pubmap>
Мой файл topic_1.dita
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
PUBLIC "urn:pubid:com.sam.doctypes:dita:topic" "topic.dtd">
<topic id="topic_1" xml:lang="en-US" outputclass="Ram-Files-RajRFR"><title>Ram-Files-Raj (RFR)</title></topic>
Мой файл topic_2.dita
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
PUBLIC "urn:pubid:com.sam.doctypes:dita:topic" "topic.dtd">
<topic id="topic_2" xml:lang="en-US" outputclass="Files-SampletitleFST"><title>Files-Sampletitle (FST)</title></topic>
для получения заголовка темы я использую переменную xsl, как показано ниже:
<xsl:variable name="maintitle"><xsl:apply-templates select="/*[contains(@class, ' topic/topic ')]/*[contains(@class, ' topic/title ')]" mode="text-only"/></xsl:variable>
Как и в предыдущем формате, я хочу получить главный заголовок diamap этого элемента mainpubtitle outputclass="book" value.
Пожалуйста, предложите мне.
1 ответ
Решение
Может быть, это поможет вам:
<xsl:variable name="maintitle">
<xsl:apply-templates select="//*[contains(@outputclass, 'book')]"/>
</xsl:variable>
Или, если вы не хотите использовать это, может быть, это нормально для вас:
<xsl:variable name="maintitle">
<xsl:value-of select="//mainpubtitle[@outputclass = 'book']/text()"/>
</xsl:variable>