使用xslt生成xml

使用xslt生成xml,xml,xslt,hashmap,Xml,Xslt,Hashmap,我想生成xml文件。来自用户的输入是不带值的xml模板。我愿意在这里使用xslt,但不知道如何利用它。我清楚地描绘了我的想法。请提出你的想法。 xml模板: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <details>

我想生成xml文件。来自用户的输入是不带值的xml模板。我愿意在这里使用xslt,但不知道如何利用它。我清楚地描绘了我的想法。请提出你的想法。 xml模板:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
        <details>
            <name/>
            <age/>
        </details>
    </soapenv:Body>
</soapenv:Envelope>

Java代码:

HashMap<String,String> map = new HashMap<String,String>();
map.put("name","xxx");
map.put("age","27");
HashMap map=newhashmap();
地图放置(“名称”、“xxx”);
地图放置(“年龄”、“27”);
xslt:



上面的代码只是示例,无法完美执行。因此,如果您有完整的代码,特别是从hashmap插入xslt的值,并使用xml模板在输出中使用相同的xml值,请发表评论。

那么为什么需要Java hashmap呢?您不能简单地使用用户只提供xml模板的yse
。xml字段的值从db中检索并存储在hashmap中。现在使用xslt在xml中设置值。我不太明白在这里使用xslt有什么好处。使用JDOM 2加载用户输入的文档,查找与映射键同名的元素,并在找到它们时设置它们的内容,听起来更容易,更接近于这些技术的设计目的。那么,为什么需要Java HashMap呢?您不能简单地使用用户只提供xml模板的yse
。xml字段的值从db中检索并存储在hashmap中。现在使用xslt在xml中设置值。我不太明白在这里使用xslt有什么好处。使用JDOM 2加载用户输入的文档,查找与地图键同名的元素,并在找到它们时设置它们的内容,听起来更容易,更接近于这些技术的设计目的。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
        xmlns:map="xalan://java.util.Map" extension-element-prefixes="map">
    <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
    <xsl:param name="map" />
    <xsl:template match="/class">
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <soapenv:Header/>
            <soapenv:Body>
                <details>
                    <name>
                        <xsl:value-of select="map:get($map,(String)$name)" />
                    </name>
                    <age>
                        <xsl:value-of select="map:get($map,(String)$age)" />
                    </age>
                </details>
            </soapenv:Body>
        </soapenv:Envelope>
    </xsl:template>
</xsl:stylesheet>