将XML文件的文件夹转换为HTML文件的文件夹

时间:2013-07-23 01:29:05

标签: html xml macos xslt xquery

我有一个包含数百个XML文件的文件夹,我想将其转换为HTML文件的文件夹。我已经创建了一个可以在w3schools.com的XSLT测试器中运行的XSLT,但我不确定如何在数百个XML文档中应用该样式表。我的XML看起来像这样(我感兴趣的唯一节点是标题,作者和歌词):

<?xml version='1.0' encoding='utf-8'?>
<song xmlns="http://openlyrics.info/namespace/2009/song" version="0.8" createdIn="OpenLP     2.0.1" modifiedIn="OpenLP 2.0.1" modifiedDate="2012-03-14T02:21:52">
  <properties>
    <titles>
      <title>Amazing Grace</title>
    </titles>
    <authors>
      <author>John Newton</author>
    </authors>
  </properties>
  <lyrics>
    <verse name="v1">
      <lines>Amazing grace, how sweet the sound<br/>That saved a wretch like me<br/>I once was lost, but now am found<br/>Was blind but now I see</lines>
    </verse>

有几个问题:

1)使用XQuery可能会更好,因为我只对每个XML文件中提取几行感兴趣吗?

2)无论XSLT / XQuery如何,我如何实现转换XML文件夹的解决方案(无需手动编辑每个文件以调用XSL样式表)?我正在运行OS X 10.8.4。

提前致谢。

2 个答案:

答案 0 :(得分:0)

  1. 我认为如果你在数据库中拥有所有XML,XQuery会更方便,但在文件系统上,XSLT可能更简单。

  2. 我只使用Saxon-PE,并从shell脚本调用它。您也可以使用Automator。

答案 1 :(得分:0)

使用xsltproc命令编写自己的shell脚本。这就是我成功用于XSLT批处理的方法。

或者只是打开一个shell cd到包含XML文件的文件夹,然后输入以下两个命令:

mkdir results
xsltproc -o results/ path/to/stylesheet.xslt *.xml