我可以在下面的例子中在我可以引用的单独文件中定义“20”,类似于C / C ++中的#define吗?如果没有,有没有办法达到预期的效果?
n=2
答案 0 :(得分:0)
当然,它被称为“外部实体”。
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE p [
<!ELEMENT p (#PCDATA)>
<!ENTITY width SYSTEM "width.xml">
]>
<p>The width should be &width; cm</p>
width.xml:
<?xml version="1.0" standalone="no" ?>
20
但就个人而言,我不喜欢这种机制,因为它不够灵活。通常我通过XSLT样式表处理我的XML,然后我发现使用处理指令更方便:
<?xml version="1.0" standalone="no" ?>
<p>The width should be <?width?> cm</p>
使用样式表:
<xsl:stylesheet ....>
<xsl:param name="width"/>
<xsl:template match="processing-instruction('width')">
<xsl:value-of select="$width"/>
</xsl:template>
XSLT方法可以更容易地将宽度值作为参数从应用程序中提供。