我对使用xml和xslt作为排版工作流程的一部分感兴趣,通过使用xslt来翻译我的标签系统以匹配乳胶格式。两个解决了问题,我创建了一个小的xml文档,其中包含了我在第一个项目中需要处理的所有结构元素。
这个过程仍然非常初步,到目前为止,我一直在确保能找到并识别我的xml元素。但是,我得到了一些令我难以接受的特殊输出。
我的转型似乎正在回复那些根本没有被要求提供的信息以及信息。最奇怪的是,我在之前的测试中成功地请求了无关的信息。有谁知道为什么书签信息被包含在我的输出中?
谢谢!
XML:
<document>
<book>
<booktitle>This is Title of The Book</booktitle>
<chapter>
<chaptertitle>Chapter 1</chaptertitle>
<paragraph>It only has one chapter, and very few words, because it is only a test.</paragraph>
<paragraph>I've made two paragraphs, though. This paragraph has an endnote.<endnote>It is marked by an arabic numeral, and can be found at the end of the document</endnote></paragraph>
<section>
<sectiontitle>Brevity not withstanding...</sectiontitle>
<paragraph>This book has a section, so that I can check the extent of the structure. Here we can find a margin note.<marginnote>They appear next to the body text, in the margin of the page.</marginnote></paragraph>
<paragraph>Here's one last paragraph to test another feature. <verse>Here is some verse.// It is terse.<attribution>The Author</attribution></verse></paragraph>
</section>
</chapter>
</book>
<book>
<booktitle>What If There Was Another Book?</booktitle>
</book>
</document>
XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="chapter">
\chapter{<xsl:value-of select="chaptertitle"/>}
</xsl:template>
</xsl:stylesheet>
输出:
This is Title of The Book
\chapter{Chapter 1}
What If There Was Another Book?
答案 0 :(得分:3)
有内置模板可确保完成处理,请参阅https://www.w3.org/TR/xslt#built-in-rule。没有它们,您的模板永远不会被处理。因此,您需要确保拥有例如。
<xsl:template match="/">
<xsl:apply-templates select="//chapter"/>
</xsl:template>
仅处理您要处理的元素,或者您需要确保文本节点的模板不输出任何内容:
<xsl:template match="text()"/>