gpt4 book ai didi

XSLT 生成 XML 中指定的 html 标签

转载 作者:行者123 更新时间:2023-12-02 08:59:54 25 4
gpt4 key购买 nike

所以这可能是一个奇怪的请求,但我会尝试一下。我有一个 xml 文档

<?xml version="1.0" encoding="utf-8" ?>
<Page>
<ID>Site</ID>
<Object>
<ID>PostCode</ID>
<Type>div</Type>
<Class>display-label</Class>
<Value>PostCode</Value>
</Object>
<Object>
<ID>PostCodeValue</ID>
<Type>div</Type>
<Class>display-field</Class>
<Value>$PostCode</Value>
</Object>
</Page>

我正在使用此 XSL 将其转换为 html 页面

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
</head>
<body>
<xsl:for-each select="Page/Object">
&lt;<xsl:value-of select="Type"/>&gt;
<xsl:value-of select="Value"/>
&lt;/<xsl:value-of select="Type"/>&gt;
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

正如您所看到的,我正在尝试根据 xml 中的类型节点生成正确的 html 标记。问题是 xsl 中不接受“<”,并且对其进行编码会阻止其被识别为标记。

有什么建议我该怎么做吗?

提前致谢

最佳答案

使用xsl:element在输出文档中创建元素节点。

<xsl:element name="{Type}" >
<xsl:value-of select="Value"/>
</xsl:element>

注意:如果您不熟悉,名称属性中的大括号可能看起来很奇怪。这是一个Attribute Value Template用于计算属性声明内的 XPATH 表达式。

应用于您的样式表:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
</head>
<body>
<xsl:for-each select="Page/Object">
<xsl:element name="{Type}" >
<xsl:value-of select="Value"/>
</xsl:element>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

关于XSLT 生成 XML 中指定的 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com