2013-07-23 66 views
0

我有一個數百個XML文件的文件夾,我想將其轉換爲HTML文件的文件夾。我已經創建了一個可以在w3schools.com的XSLT測試器中工作的XSLT,但我不確定如何在數百個XML文檔中應用該樣式表。我的XML看起來像這樣(我唯一感興趣的節點標題,作者和歌詞):將XML文件的文件夾轉換爲HTML文件的文件夾

<?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。

在此先感謝。

+0

你應該使用集合()xslt2.0的功能,以應用樣式表翻過上百xml文檔。爲了更多的理解你可以按照http://www.xmlplease.com/collection。我堅信HTML,你想要轉換。你只是想將你的xml重命名爲html擴展,或者你想創建多個html文件,這取決於你的XML輸入文件。 –

+0

我會使用XSLT 2.0和像Navin建議的'collection()'函數。儘管如此,這可能會導致內存消耗問題。你可以通過使用撒克遜的擴展函數'saxon:discard-document'來解決這個問題。我可以添加一個例子,如果它會幫助。 –

回答

0

只需使用xsltproc命令編寫自己的shell腳本。這是我成功用於XSLT批處理的原因。

或者只是開個殼,cd文件夾與XML文件,然後輸入以下兩個命令:

mkdir results 
xsltproc -o results/ path/to/stylesheet.xslt *.xml 
0
  1. 我想,如果你有數據庫中所有的XML的XQuery的會比較方便,但在文件系統中XSLT可以更簡單。

  2. 我只使用Saxon-PE,並從shell腳本中調用它。你也可以使用Automator。

相關問題