我试图通过使用XSL来展示我的XML,同时为了使我的XML格式良好,我使用了DTD。问题是每当我在XML上放置DTD链接时,网页就会变成空白。如果我删除DTD链接一切正常。如何将DTD和XML结合起来?
XML代码:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="erakutsi.xsl"?>
<!DOCTYPE trantzakzioak SYSTEM "xml_eskema.xsd">
<trantzakzioak>
<trantzakzioa erabiltzailea="bs123@ikasle.ehu.eus" mota="DiruS">
<kontzeptua>Lanean irabazitakoa</kontzeptua>
<kantitatea>4000.0</kantitatea>
</trantzakzioa>
</trantzakzioak>
DTD代码:
<!ELEMENT trantzakzioak (trantzakzioa)*>
<!ATTLIST trantzakzioak>
<!ELEMENT trantzakzioa (kontzeptua,kantitatea)>
<!ATTLIST trantzakzioa erabiltzailea #PCDATA #REQUIRED>
<!ATTLIST trantzakzioa mota #PCDATA #REQUIRED>
<!ELEMENT kontzeptua (#PCDATA)>
<!ELEMENT kantitatea (#PCDATA)>
XSL代码:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<BODY>
<h2>Galderak</h2>
<TABLE border="1">
<TR>
<TH>Testua</TH>
</TR>
<xsl:for-each select="/trantzakzioak/trantzakzioa" >
<TR>
<TD><FONT SIZE="2" COLOR="red" FACE="Verdana">
<xsl:value-of select="kontzeptua"/> <BR/>
</FONT>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML></xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
一般语法如下:
<!DOCTYPE [Top-level element] [Publicity] "[Registration]//[Organization]//[Type] [Name]//[Language]" "[URL]">
参数:
顶级元素 - 表示文档中的顶级元素,对于HTML,这是标记。
宣传 - 对象是公共的(值PUBLIC)或系统资源(值SYSTEM),例如本地文件。对于HTML / XHTML,指定值PUBLIC。
注册 - 报告DTD的开发者已在国际标准化组织(ISO)注册。它需要以下两个值之一:加号(+) - 开发人员在ISO中注册, - (减号) - 开发人员未注册。对于W3C,该值设置为“ - ”。
组织 - 开发DTD的组织的唯一名称。正式地,HTML / XHTML发布了W3C,这个名称是用来写的。
类型 - 描述的文档类型。对于HTML / XHTML,该值由DTD指定。
名称 - 描述DTD的文档的唯一名称。
语言 - 用于编写文本来描述对象。包含两个用大写字母写的字母。 HTML(XHTML)文档指定英语(EN)。
URL - 包含DTD的文档。
所以在你的情况下,如果xml_eskema.dtd如下:
<!ELEMENT trantzakzioak (trantzakzioa)*>
<!ATTLIST trantzakzioak>
<!ELEMENT trantzakzioa (kontzeptua,kantitatea)>
<!ATTLIST trantzakzioa erabiltzailea CDATA #REQUIRED>
<!ATTLIST trantzakzioa mota CDATA #REQUIRED>
<!ELEMENT kontzeptua (#PCDATA)>
<!ELEMENT kantitatea (#PCDATA)>
然后您的XML DOCTYPE声明应如下所示:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="erakutsi.xsl"?>
<!DOCTYPE trantzakzioak PUBLIC '-//W3C//DTD HTML//EN' 'xml_eskema.dtd'>
<trantzakzioak>
<trantzakzioa erabiltzailea="bs123@ikasle.ehu.eus" mota="DiruS">
<kontzeptua>Lanean irabazitakoa</kontzeptua>
<kantitatea>4000.0</kantitatea>
</trantzakzioa>
</trantzakzioak>
因此,您将看到如下: