我看到了一个使用 JSTL 将 xml 转换为另一个 xml 的示例。但在那个例子中,他们对属性值进行了硬编码。请看下面的例子
输入 XML
country isocode="de" pk="8796093055010" uri="http://localhost:9001/ws410/rest/countries/de">
<comments/>
<creationtime>2011-08-03T21:53:35.624+05:30</creationtime>
<dimVals/>
<modifiedtime>2011-08-03T22:05:10.111+05:30</modifiedtime>
<active>true</active>
<name>Germany</name>
<regions>
<region isocode="DE-BW" pk="8796093055011" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BW"/>
<region isocode="DE-BY" pk="8796093087779" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BY"/>
<region isocode="DE-BE" pk="8796093120547" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BE"/>
<region isocode="DE-BR" pk="8796093153315" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-BR"/>
<region isocode="DE-HB" pk="8796093186083" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HB"/>
<region isocode="DE-HH" pk="8796093218851" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HH"/>
<region isocode="DE-HE" pk="8796093251619" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-HE"/>
<region isocode="DE-MV" pk="8796093284387" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-MV"/>
<region isocode="DE-NI" pk="8796093317155" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-NI"/>
<region isocode="DE-NW" pk="8796093349923" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-NW"/>
<region isocode="DE-RP" pk="8796093382691" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-RP"/>
<region isocode="DE-SL" pk="8796093415459" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SL"/>
<region isocode="DE-ST" pk="8796093448227" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-ST"/>
<region isocode="DE-SN" pk="8796093480995" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SN"/>
<region isocode="DE-SH" pk="8796093513763" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-SH"/>
<region isocode="DE-TH" pk="8796093546531" uri="http://localhost:9001/ws410/rest/countries/de/regions/DE-TH"/>
</regions>
<zones>
<zone code="de" pk="8796093056179" uri="http://localhost:9001/ws410/rest/zones/de"/>
</zones>
</country>
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="/country/regions" />
</xsl:template>
<xsl:template match="regions">
<RECORDS>
<xsl:for-each select="region">
<RECORD>
<PROP name="isocode">
<PVAL>
<xsl:value-of select="@isocode" />
</PVAL>
</PROP>
<PROP name="pk">
<PVAL>
<xsl:value-of select="@pk" />
</PVAL>
</PROP>
<PROP name="uri">
<PVAL>
<xsl:value-of select="@uri" />
</PVAL>
</PROP>
</RECORD>
</xsl:for-each>
</RECORDS>
</xsl:template>
</xsl:stylesheet>
输出 XML
<?xml version="1.0" encoding="UTF-8"?>
<RECORDS>
<RECORD>
<PROP name="isocode">
<PVAL>DE-BW</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093055011</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-BW</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-BY</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093087779</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-BY</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-BE</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093120547</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-BE</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-BR</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093153315</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-BR</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-HB</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093186083</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-HB</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-HH</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093218851</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-HH</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-HE</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093251619</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-HE</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-MV</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093284387</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-MV</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-NI</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093317155</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-NI</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-NW</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093349923</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-NW</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-RP</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093382691</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-RP</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-SL</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093415459</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-SL</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-ST</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093448227</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-ST</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-SN</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093480995</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-SN</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-SH</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093513763</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-SH</PVAL>
</PROP>
</RECORD>
<RECORD>
<PROP name="isocode">
<PVAL>DE-TH</PVAL>
</PROP>
<PROP name="pk">
<PVAL>8796093546531</PVAL>
</PROP>
<PROP name="uri">
<PVAL>http://localhost:9001/ws410/rest/countries/de/regions/DE-TH</PVAL>
</PROP>
</RECORD>
</RECORDS>
在此输出 xml 中,我创建了许多 RECORD 子元素。我的问题是我想转换 PROB 名称属性() 没有硬编码的值。我需要从输入 xml读取区域元素属性并将该值转换为输出 xml。请帮助我找到解决方案。
谢谢...