html - 有没有办法在不需要遵循xml结构的情况下在html中转换xml?
问题描述
我需要将 xml 转换为 html。我正在使用 xsl 和 xsltproc 但注意到我需要知道 xml 结构才能为其生成正确的 html。我想创建对所有 xml 文档都应该通用的 xsl,无论它们的结构如何。任何想法都非常感谢。
例如,我想要的只是转换器看到 xml 标记 para 用 html 标记 p 和 par 的值替换它,而不考虑 xml 的结构。我需要 xml 的副本,但在 html 中。
解决方案
给定一个示例 XML...
<?xml version="1.0"?>
<xml>
<para rollno="392">
<someValue>365 days</someValue>
</para>
</xml>
例如,我想要的只是转换器看到 xml 标记 para 用 html 标记 p 和 par 的值替换它,而不考虑 xml 的结构。
...您可以使用带有简单模板的标签替换所有para
标签。p
将此/这些模板与标识模板结合使用,您可以独立于 XML 结构替换某些标签。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Create HTML prologue -->
<xsl:template match="/*">
<html>
<body>
<xsl:apply-templates select="node()|@*" />
</body>
</html>
</xsl:template>
<!-- identity template -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<!-- Replace 'para' with 'p' -->
<xsl:template match="para">
<p>
<xsl:apply-templates select="node()|@*" />
</p>
</xsl:template>
</xsl:stylesheet>
输出是:
<html>
<body>
<p rollno="392">
<someValue>365 days</someValue>
</p>
</body>
</html>
推荐阅读
- python - 死代理错误的 Python 响应处理
- python - 无法使用 sphinx 为嵌套的 python 模块生成 html 文档
- docker - docker-compose -p up 在 docker compose 中替代
- javascript - Chessboardjs 设置有效,但棋子不会“掉落”
- active-directory - 不会为从 Microsoft Active Directory Server 到 Apache Directory Studio 的用户填充字段
- azure-cosmosdb - 获取多个属性 CosmosDB 的最大值
- javascript - 使用 NodeJS 以编程方式将图像发布到 Strapi
- typescript - jest-mock-extended - 使用对象输入调用模拟 [Typescript]
- c - 文件处理问题求助!我不能让这个函数运行来编辑二进制 .txt 文件中的结构
- numpy - 为什么 tensorflow 需要 VC++ 而 numpy 不需要?