---
title: "处理 Groupon API – 第 3 部分"
date: "2011-08-23"
categories: 
  - "xpath"
tags: 
  - "altova-xmlspy"
  - "code-generation"
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "missionkit"
  - "stylevision"
  - "xpath"
  - "xslt"
description: 本文详细介绍了如何使用MapForce和StyleVision将来自Groupon API的XML数据转换为HTML，并包括用于未来更新的自动化技术。
---
Status: #blog

Tags:  #altova-xmlspy #code-generation #data-integration #data-mapping #mapforce #missionkit #stylevision #xpath #xslt

Categories: [xpath+xquery](/blog/zh/category/xpathxquery.md)
# 处理 Groupon API – 第 3 部分

在本文的最后一部分，我们将应用样式表，将我们之前通过映射 Groupon API 创建的 XML 数据转换为 HTML。以下是上次我们创建的数据映射产生的 XML 输出示例： 

[![由 MapForce 从 Groupon API 生成的 XML 数据](https://lh3.ggpht.com/-h0F6UNg0mYE/TkrQemSqO1I/AAAAAAAAAfU/9P9AGv4m8A0/clip_image001_thumb.png?imgmax=800 "XML produced by MapForce from the Groupon API")](http://lh5.ggpht.com/-XL3rbj8xibk/Tkqn-_a3EnI/AAAAAAAAAfQ/4zpv56LY3n0/s1600-h/clip_image0013.png)

**为转换 XML 文件指定样式表** 在 MapForce 映射工具中，输出组件的设置对话框允许我们指定一个使用 [Altova StyleVision](https://www.altova.com/zh/stylevision.html) 创建的样式表。 

[![将 StyleVision 样式表分配给 MapForce 组件](https://lh5.ggpht.com/-pEOLdoTlHi8/TkrQgawhHbI/AAAAAAAAAfc/oMOs9DkhVQg/clip_image002_thumb.png?imgmax=800 "Assigning a StyleVision Stylesheet to a MapForce component")](http://lh6.ggpht.com/-jkc4oqy44F8/TkrQfV8KTuI/AAAAAAAAAfY/SnuxbQJpTZA/s1600-h/clip_image0023.png)

将样式表应用于数据映射输出组件，可以整合 MapForce 和 StyleVision 的功能。此时，在 MapForce 映射窗口的底部会显示一系列新的按钮，用于生成 HTML、RTF、PDF 和 Microsoft Word 格式的文件。（请确保您的计算机上已安装 MapForce 和 StyleVision。） 

[![通过样式表，MapForce 支持多种输出格式](https://lh6.ggpht.com/--s7AXIp_w0s/TkvWFVa96cI/AAAAAAAAAfk/7itaFHSma0c/clip_image003_thumb.png?imgmax=800 "MapForce ouput formats available through a stylesheet")](http://lh4.ggpht.com/-GfSEJ5Q-sTI/TkrQhetcQgI/AAAAAAAAAfg/HkruS5kOnHo/s1600-h/clip_image0033.png) 

当您点击这些输出格式按钮中的任何一个时，MapForce 会按照我们在上一篇文章中看到的那样，精确地执行数据映射。MapForce 会无缝地将 XML 输出传递给 StyleVision，StyleVision 会将其转换为所选的格式。然后，MapForce 会在“输出”窗口中显示格式化后的文档。以下是 MapForce 的“输出”窗口，用于 HTML 格式，基于上面分配的 StyleVision 样式表： 

[![MapForce 从 Groupon API 生成的 HTML 输出](https://lh6.ggpht.com/-jDCDPWVxHqw/TkvWGgysN5I/AAAAAAAAAfs/QDZMscS7T_Y/clip_image004_thumb.png?imgmax=800 "HTML output produced by MapForce from the Groupon API")](http://lh6.ggpht.com/-tjJnbT8WLrY/TkvWGE62H3I/AAAAAAAAAfo/iy0l9HADNAA/s1600-h/clip_image0043.png) 

“MapForce 输出”菜单允许您保存 XML 数据映射的输出结果，或者保存根据样式表格式化的 HTML 文档。 

**如何创建样式表** 

我们使用Altova StyleVision为Groupon API数据映射设计了一个样式表，该样式表基于MapForce输出组件的XML Schema。StyleVision直观的界面以及强大的数据访问和处理功能，使得从XML文件创建美观的HTML、RTF、PDF和Microsoft Word格式文档变得非常容易。下图显示了Extreme Groupon样式表的StyleVision设计视图。蓝色编号的圆圈标识了图像下方列出的每个设计功能的具体位置。 

[![用于 MapForce Groupon API 映射的 StyleVision 样式表 ](https://lh6.ggpht.com/-pnx-fT078tc/TkvWHLUifZI/AAAAAAAAAf0/66UAjZTag7I/clip_image005_thumb.png?imgmax=800 "StyleVision stylesheet for the MapForce Groupon API mapping ")](http://lh3.ggpht.com/-udSLWXUrC48/TkvWG3rY1rI/AAAAAAAAAfw/m_acYhFa4oY/s1600-h/clip_image0053.png) 

**SPS 文件的特点**

1. 用户自定义的 HTML 代码可以指定移动设备的视口元标签。 这样，我们就可以设计一个样式表，从而生成一个 HTML 文件，该文件同时适用于电脑和移动设备  
    
2. 文档标题，可自定义字体、大小和颜色  
    
3. 一个自动计算元素使用 XPath 的 `count` 函数来统计 XML 输入文档中交易的数量，并将总数插入到相应位置  
    
4. 尽管日期元素出现在 XML 输入数据文件的末尾，但日期时间戳却被放置在文档的顶部  
    
5. 来自 Altova 和 Groupon 网站的图片是通过超链接引用的，而不是直接嵌入在网页中的图片数据  
    
6. 水平分隔线用于分隔每个独立的交易信息。对于HTML文档，这些分隔线会自动适应浏览器窗口的宽度  
    
7. 为不同的元素分配自定义的字体和字号  
    
8. 一个双栏表格用于整理每项交易的详细描述  
    
9. XML文件中的URL会被动态地分配为超链接，用于嵌入的图像、固定文本和动态数据

StyleVision 的样式表功能可以将多个 .xsd 文件、现有的 .css 样式表、数据库结构、XBRL 分类体系等多种元素组合在一起，从而生成格式丰富的报告，甚至可以包含自动生成的、具有各种样式的图表。您还可以使用 StyleVision 定义包含数据输入字段、下拉菜单、单选按钮和其他高级功能的电子表格。 

**预览样式表转换效果** 

StyleVision 允许您指定一个工作 XML 文件，以便在设计样式表时预览输出结果。设计窗口底部的按钮方便您在完善设计时，显示格式化的工作文件。我们保存了 MapForce 映射的 XML 输出，并将其指定为我们的工作文档。当样式表完成后，StyleVision 中的 HTML 预览与上面所示的 MapForce HTML 输出窗口完全一致。要查看文档在移动设备上的显示效果，您可以将其作为网页部署到网站上，或者将其作为附件通过电子邮件发送。 

[![在移动设备上查看 MapForce 映射数据的 HTML 格式版本](https://lh4.ggpht.com/-Xd-xWOlrDcA/TkvWIWhzLVI/AAAAAAAAAf8/Nx5x5yHOlaU/clip_image006_thumb.png?imgmax=800 "HTML version of the MapForce mapped data on a mobile device")](http://lh5.ggpht.com/-iQk8CUjKs9s/TkvWH5NOz2I/AAAAAAAAAf4/Ko9ZkvHYH1o/s1600-h/clip_image0063.png) 

除了样式表本身以及工作文档的格式化版本之外，StyleVision 还允许您将生成的 XSLT 文件保存下来，以便在 StyleVision 应用程序之外，使用您的样式表设计来转换其他 XML 文件。 

**下一次，我们将采用自动化技术** 

未来，当您需要重新执行数据映射并将HTML文档更新为最新数据时，有以下两种方法可以自动化这个过程：

- 您可以从以下位置运行 MapForce： [命令行](https://www.altova.com/zh/mapforce/mapforce-api.html#MF_ed_comp_5) 可以设置参数来指定映射定义文件的名称，甚至可以直接调用 StyleVision 来生成格式化的输出  
    
- 您可以[生成免版税的代码](https://www.altova.com/zh/mapforce/code-generation.html)，用于在 XSLT、Java、C++ 或 C# 中实现数据映射，并将这些代码与 StyleVision 的 XSLT 代码结合起来，从而构建您自己的完整应用程序

XMLSpy、MapForce和StyleVision这三款软件都可以在特别优惠的Altova MissionKit中同时获得。 亲自体验一下，使用MissionKit将数据从Web API转换有多么简单——[下载免费的30天试用版！](https://www.altova.com/zh/download/missionkit/software_development_tools_enterprise.html) 

**编辑语：** 我们之前推出的一系列关于如何从 Groupon API 获取数据的文章，分为三个部分。您可以点击以下链接查看：第一部分 [使用 Altova MapForce 处理 Groupon API](https://www.altova.com/blog/2011/08/processing-groupon-api-with-altova.html) 描述了如何通过从多个网址收集数据来创建动态输入。 [使用 MapForce 处理 Groupon API 的方法（第二部分）](https://www.altova.com/blog/2011/08/processing-groupon-api-with-mapforce.html) 它描述了我们如何从API中筛选数据，并定义输出格式，以便只提取最重要和有趣的信息。 [处理 Groupon API – 第 3 部分](https://www.altova.com/blog/2011/08/processing-groupon-api-part-3.html) 它描述了如何将输出格式化为单个HTML文档，该文档针对桌面设备和移动设备进行了优化，并介绍了自动化重复执行的方法。
