繁体   English   中英

Java的。 将XSL样式表内部嵌入到XML文档中

[英]Java. Embedding an XSL Stylesheet INTERNALLY into an XML Document

我想使用Java将XSL样式表内部嵌入到现有XML文档中。 我发现此答案表明可能: 将xsl嵌入XML文件

但是我正在使用这种格式,因为上面的示例不适用于我。 下面将其粘贴为示例。 http://www.calebmadrigal.com/embedding-xslt-xml-document/

    <?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE catalog [
<!ATTLIST xsl:stylesheet
  id    ID  #REQUIRED>
]>
<catalog>
<xsl:stylesheet id="stylesheet" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <company>Columbia</company>
        <price>10.90</price>
        <year>1985</year>
    </cd>
    <cd>
        <title>Hide your heart</title>
        <artist>Bonnie Tyler</artist>
        <country>UK</country>
        <company>CBS Records</company>
        <price>9.90</price>
        <year>1988</year>
    </cd>
</catalog>

我了解您可以在xml中使用诸如href =“ MyStyle.xsl”这样的行链接到EXTERNAL样式表,但这需要用户将该文件与输出xml文件放在同一文件夹中。

我想在内部嵌入此样式表,以便可以在Chrome中查看,如上面的第二个链接所示。 我在用Java执行此操作时遇到问题。 我正在使用Eclipse API。

我试过仅将xsl逐行写入xml文档(将xml文档剪切和粘贴在一起),但这似乎在使用DOM解析器时由于读取所述文档而中断,并且不是很优雅。 这可能吗?

如果使用http://docs.oracle.com/javase/7/docs/api/javax/xml/stream/XMLStreamWriter.html#writeDTD(java.lang.String) ,则可以写出所需的DOCTYPE节点。 我认为W3C DOM API不允许您使用嵌入式元素和属性声明来创建DOCTYPE节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM