Xml 自定义xhtml标记以减少重复块
我有一个xhtml文件,其中包含许多相同的Xml 自定义xhtml标记以减少重复块,xml,xhtml,Xml,Xhtml,我有一个xhtml文件,其中包含许多相同的块,只有一个标识符#####出现在几个地方。注意:##IDENTIFIER###是此消息块中使用的纯文本值的占位符 <message id="##IDENTIFIER##"> <div class="box"> <div class="box-header"> <div class="box-title"> <h3 cla
块,只有一个标识符#####
出现在几个地方。注意:##IDENTIFIER###
是此消息块中使用的纯文本值的占位符
<message id="##IDENTIFIER##">
<div class="box">
<div class="box-header">
<div class="box-title">
<h3 class="box-title-text">Title</h3>
</div>
<div class="button">
${specialblock: "##IDENTIFIER##"}
</div>
</div>
<div class="edit">
${##IDENTIFIER##: "data"}
</div>
</div>
</message>
标题
${specialblock:“##标识符##”}
${###标识符##:“数据”}
我希望能够做的是制作一个自定义标记,我可以使用它来替换上面的代码块,例如:
这可能吗?如果是这样的话,有什么好办法?我已经开始研究模式和实体引用,但我还不太了解它们,我也不确定它们是否会提供我正在寻找的行为
编辑:我也希望这可以在同一个文件中完成,但如果需要,我可以添加其他文件
我想做的是制作一个自定义标记,我可以用它来替换上面的代码块,比如:
应用以下XSLT(例如命名为a.XSLT
)
对于Windows,也有很多XSLT处理器,只需谷歌一下。是
###IDENTIFIER##
实际的字符串值还是某种占位符?另外,您可以使用XSLT(转换XML)吗?我只是使用#######
作为占位符。我认为XSLT不会有问题,有什么文档可以推荐吗?看看react.js
<mymessage value="##IDENTIFIER##"/>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<message id="##IDENTIFIER003##">
<div class="box">
<div class="box-header">
<div class="box-title">
<h3 class="box-title-text">Title</h3>
</div>
<div class="button">
${specialblock: "##IDENTIFIER##"}
</div>
</div>
<div class="edit">
${##IDENTIFIER##: "data"}
</div>
</div>
</message>
<message id="##IDENTIFIER001##">
<div class="box">
<div class="box-header">
<div class="box-title">
<h3 class="box-title-text">Title</h3>
</div>
<div class="button">
${specialblock: "##IDENTIFIER##"}
</div>
</div>
<div class="edit">
${##IDENTIFIER##: "data"}
</div>
</div>
</message>
<message id="##IDENTIFIER002##">
<div class="box">
<div class="box-header">
<div class="box-title">
<h3 class="box-title-text">Title</h3>
</div>
<div class="button">
${specialblock: "##IDENTIFIER##"}
</div>
</div>
<div class="edit">
${##IDENTIFIER##: "data"}
</div>
</div>
</message>
</root>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" encoding="utf-8" />
<!-- identity template -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="message">
<mymessage value="{@id}" />
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<root>
<mymessage value="##IDENTIFIER003##"/>
<mymessage value="##IDENTIFIER001##"/>
<mymessage value="##IDENTIFIER002##"/>
</root>
xsltproc a.xslt a.xml