获取XSLT将Doctype系统添加到XML输出文件

时间:2018-06-22 11:16:44

标签: xml xslt doctype

我在XML方面还很陌生,正在尝试让XSLT向包含在与要转换的.XML相同的文件夹中的.DTD文件中添加文档类型系统。

该转换由InDesign进行。

例如,我就是无法添加它 在xml版本下。

我已经尝试了几天了,这让我很困惑。我已经搜索了论坛,但找不到解决方案,因此请您先抱歉

任何帮助将不胜感激。

转换代码

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<xsl:output method="xml" doctype-system="name.dtd" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">
<CATEGORY>
    <VERS>
        <xsl:for-each select="VFPData/g_otemp/prodid">
        <xsl:sort select="../priceout" data-type="number" />
        <xsl:if test="../inactive != 'true'">
            <code>
                <xsl:value-of select="../prodid" />
            </code>
            <name>
                <xsl:value-of select="../desc" />
            </name>
            <xsl:if test="../priceout != '0.0000'">
                <price>
            <xsl:value-of select="format-number(../priceout, '£0.00')" />
                </price>
            </xsl:if>
        <xsl:if test="../priceout = '0.0000'">
            <price>P.O.A</price>
        </xsl:if>
    </xsl:if>
        <loc>&amp;name;</loc>
        </xsl:for-each>
    </VERS>
</CATEGORY>
</xsl:template>
</xsl:stylesheet>

.DTD文件(包含占位符文本atm)

<!ENTITY name "I'm in the same folder as my XML Data">

正在转换的文件

<?xml version="1.0" encoding="UTF-8"?>

<VFPData>
  <g_otemp>
    <prodid>AAV-502430</prodid>
    <desc>3/8" Automatic Air Vent - 4 Bar</desc>
    <data21>4</data21>
    <priceout>7.7600</priceout>
    <pricecost>3.1900</pricecost>
    <profit>4.5700</profit>
    <pricedesc>Price Update - JCR</pricedesc>
    <price_from>2017-01-19T11:42:00</price_from>
    <vatrate>20.00</vatrate>
    <maingroup>AAV's &amp; ELIMINATORS</maingroup>
    <prodgroup2>Automatic Air Vents</prodgroup2>
    <pk_prodid>7520</pk_prodid>
    <inactive>false</inactive>
  </g_otemp>
  <g_otemp>
    <prodid>AAV-502630</prodid>
    <desc>3/8" Automatic Air Vent - 10 Bar</desc>
    <data21>4</data21>
    <priceout>8.2800</priceout>
    <pricecost>3.7967</pricecost>
    <profit>4.4833</profit>
    <pricedesc>Price Update - JCR</pricedesc>
    <price_from>2017-08-14T10:49:00</price_from>
    <vatrate>20.00</vatrate>
    <maingroup>AAV's &amp; ELIMINATORS</maingroup>
    <prodgroup2>Automatic Air Vents</prodgroup2>
    <pk_prodid>5562</pk_prodid>
    <inactive>false</inactive>
  </g_otemp>
</VFPData>

0 个答案:

没有答案