xml - 如何使用 xsl 表达式在 ditamap 中获取 pubtitle
问题描述
使用 xsl 表达式 MY Input XML Dita 映射文件在下面的 ditamap 中获取 pubtitle 值
<?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>
与上述格式一样,我想获取此元素 mainpubtitle outputclass="book" 值的 diamap 主标题。
请给我建议。
解决方案
也许这可以帮助你:
<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>
推荐阅读
- javascript - 手风琴项目重复
- arrays - 分组 Powershell 数组然后转换为 json
- osgi - 重新启动 OSGi 中的所有捆绑包
- python - Django 1.11 订单结果问题 - 注释计数返回错误值
- android - 从 Firebase Firestore 中提取数据时 RecyclerView 上的动画
- popover - 引导弹出窗口优于其他弹出窗口
- android - 当我在 textView 上设置一个 int 值时的 Resources$NotFoundException
- mysql - 在查找子查询中引用主表以进行更新时出错
- c++11 - 堆栈的应用
- java - Java-如何从字符串列表中创建哈希 id