我在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>&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 & 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 & ELIMINATORS</maingroup>
<prodgroup2>Automatic Air Vents</prodgroup2>
<pk_prodid>5562</pk_prodid>
<inactive>false</inactive>
</g_otemp>
</VFPData>