在一个文件中使用 JavaScript 格式化 XML 数据

Format XML data with JavaScript in one file

本文关键字:JavaScript 格式化 数据 XML 文件 一个      更新时间:2023-09-26

我想通过JavaScript将单个XML文件转换为人类可读的格式。 原因如下:

  1. 需要生成一个可以在任何地方工作的人类可读文档。(Windows,Mac,Linux,iPhone,Android,Blackberry等(
  2. 信息来自我定义的C++数据结构。
  3. 需要能够包含图片。
  4. 创建后,此文档将作为电子邮件附件发送。

我调查过:

  • XSLT:可以作为单个文件工作,但仅在最新的移动设备上受支持。
  • CSS:我认为格式不够复杂,无法得到我需要的东西。
  • PDF:开源库必须包含在环境中。如果有好的选择,我宁愿不这样做。

这就是我研究JavaScript的原因。 但第一个问题是,JavaScript 可以格式化/显示存在于同一个文件中的 XML 数据吗? 如果是这样,如何?

你想做一些奇怪的事情。您不能将单个 JavaScript 或 CSS 文件用作带有图像的可读文档。这是不可能的。为什么你不只使用 HTML?您可以在HTML页面上包含CSS和JavaScript,并获得几乎任何您想要的外观和行为。HTML 可以用作单个文件。图像可以使用 data:uri 包含在 HTML 页面中。

它认为服务器端选项(例如服务器端XSLT(会更可取,但如果不可用,那么您可以在Javascript或JQuery中解析XML文档。 有关如何使用 JQuery 执行此操作的简单示例,请参阅此处:http://api.jquery.com/jQuery.parseXML/。 此示例从 XML 中获取一个"title"元素,并将其添加到 ID 为"somelement"的 HTML 元素中。

var xml = "";  // TODO get your xml here
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc);
var title = $xml.find("title");
$("#someelement").text(title);

如果您使用的是纯 Javascript,那么您可以像解析 HTML 一样解析 XML。 例如,假设您有如下所示的 XML:

然后,您可以像这样解析 XML 文档:

var items = myXml.getElementsByTagName('item');
var text = items[0].getAttribute('text');
$("#someelement").text(text);

希望有帮助...