【发布时间】:2021-06-27 08:03:54
【问题描述】:
我有一组通用的标签,需要用不同的包装元素包装。 示例输入 XML 就像-
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<a>Hello there</a>
<code>FJ-123-99</code>
<isPopular>True</isPopular>
<timestamp>2019-10-17 07:57:23</timestamp>
<pop>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<about>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</about>
</pop>
<classic>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<about>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</about>
</classic>
<retro>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<about>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</about>
</retro>
</catalog>
样本输出
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<a type="primary">Hello there</a>
<typeCode>FJ12399</typeCode>
<isPopular>Y</isPopular>
<timestamp>20191017:075723</timestamp>
<pop>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<about>
<organization>Columbia</organization>
<amount>10.90</amount>
<releaseTime>1985</releaseTime>
</about>
</pop>
<classic>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<about>
<organization>CBS Records</organization>
<amount>9.90</amount>
<releaseTime>1988</releaseTime>
</about>
</classic>
<retro>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<about>
<organization>USA</organization>
<amount>9.90</amount>
<releaseTime>1982</releaseTime>
</about>
</retro>
</catalog>
这里,<title> <artist> 和 <about> 是 <pop> <retro> 和 <classic> 等主包装器的常见用法。
我的问题是如何将这些常用模板应用到我的主要包装器中 我能够进行所有转换,例如转换时间戳、删除连字符、更改标签名称。
【问题讨论】:
-
XML 样本是输入样本还是想要的结果样本?如果没有最少但完整的 XML 输入示例、您拥有的 XSLT 和您想要的结果,以及您希望如何将输入映射到结果的文本描述,这很难提供帮助。
-
@MartinHonnen 这是示例输入 XML。我的问题是如何将常用模板(如 mailAddress、作者)应用于包装元素,如 mathsBook、englishBook、scienceBook?除了一些字体大小和样式翻译外,输出 XML 与输入 XML 相同。我需要输出中的所有标签与输入相同
标签: xslt xslt-1.0 xslt-2.0 xslt-grouping apply-templates