【发布时间】:2017-12-11 05:45:53
【问题描述】:
我试图通过使用 XSL 来显示我的 XML,同时为了使我的 XML 格式正确,我使用了 DTD。问题是每当我将 DTD 链接放在 XML 上时,网页就会变为空白。如果我删除 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>
【问题讨论】:
-
这是完整的 DTD 吗?您确定它没有在根元素或其他一些元素上另外声明
xmlns="..."属性吗? -
您的 DTD 无效。它不能包含
#PCDATA输入ATTLLIST。我想它需要改为CDATA。