我有一個XML文件,該文件是在http://pastie.org/9604783爲什麼這些xsl:當測試總是被評估爲false?
我使用與撒克遜-HE下面的XSL,雖然它不會產生錯誤(所以它應該是正確的語法)沒有任何的xsl:when語句似乎應評估爲真,因爲所有輸出標籤都按xsl:otherwise
聲明打包在<bodytext></bodytext>
中。
這些xsl:when
語句的預期效果是下列
一些變化IF a:t
元件具有 一個<p.sld>
祖先 並且具有<r>
祖先具有其具有的屬性的緊接在前的同級元素:值對lvl='1'
THEN輸出的該a:t
的內容包在<bulleted></bulleted>
以其他方式輸出該a:t
包裹的內容物在<bodytext></bodytext>
什麼標籤輸出應該被包裹在變化取決於是否祖先是<p.sld>
或<p.notes>
和lvl
屬性是否具有值爲1,2,或3
這裏是我的XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<xsl:output method="xml"/>
<xsl:template match="/">
<document>
<xsl:apply-templates select="//a:t"/>
</document>
</xsl:template>
<xsl:template match="//a:t">
<xsl:choose>
<xsl:when test="(count(ancestor::p:sld) > 0) and (count(ancestor::r/preceding-sibling::node[1][@lvl='1'])) > 0">
<bulleted>
<xsl:value-of select="."/>
</bulleted>
</xsl:when>
<xsl:when test="(count(ancestor::p:sld) > 0) and (count(ancestor::r/preceding-sibling::node[1][@lvl='2'])) > 0">
<bulleted2>
<xsl:value-of select="."/>
</bulleted2>
</xsl:when>
<xsl:when test="(count(ancestor::p:notes) > 0) and (count(ancestor::r/preceding-sibling::node[1][@lvl='2'])) > 0">
<bulleted>
<xsl:value-of select="."/>
</bulleted>
</xsl:when>
<xsl:when test="(count(ancestor::p:notes) > 0) and (count(ancestor::r/preceding-sibling::node[1][@lvl='3'])) > 0">
<bulleted2>
<xsl:value-of select="."/>
</bulleted2>
</xsl:when>
<xsl:otherwise>
<bodytext>
<xsl:value-of select="."/>
</bodytext>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
下面是所需的XML輸出:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main">
<bodytext>header text</bodytext>
<bodytext>body text </bodytext>
<bodytext>body text </bodytext>
<bodytext>body text </bodytext>
<bulleted>bulleted text</bulleted>
<bulleted>bulleted text</bulleted>
<bulleted>bulleted text</bulleted>
<bulleted2>bulleted2 text</bulleted2>
<bulleted2>bulleted2 text</bulleted2>
<bulleted2>bulleted2 text</bulleted2>
<bulleted2>bulleted2 text</bulleted2>
<bulleted>bulleted text</bulleted>
<bulleted>bulleted text</bulleted>
<bulleted>bulleted text</bulleted>
<bulleted>bulleted text</bulleted>
<bodytext>body text</bodytext>
<bodytext>body text</bodytext>
<bodytext>footer text</bodytext>
<bodytext>10</bodytext>
<bodytext>10</bodytext>
<bodytext>notes header text</bodytext>
<bodytext>notes body text </bodytext>
<bodytext>notes body text </bodytext>
<bodytext>notes table header text</bodytext>
<bodytext>notes table header text</bodytext>
<bodytext>notes table body text</bodytext>
<bodytext>notes table body text</bodytext>
<bodytext>notes table body text</bodytext>
<bodytext>notes table body text</bodytext>
<bodytext>notes table body text</bodytext>
<bodytext>notes table body text</bodytext>
</document>
請將您的示例最小化爲僅顯示問題的必要條件。 – 2014-09-29 17:29:20
這將有所幫助。 – 2014-09-29 17:36:44