如何使用xsltproc转换单个文件中包含的多个文档?

时间:2015-07-07 15:40:27

标签: xml xslt

我在一行中有一个包含多个XML文档的文件。类似的东西:

<entity id ="1"><attribute name="x">1</attribute><attribute name="y">2</attribute></entity>
<entity id name="2"><attribute name="x">5</attribute><attribute name="y">6</attribute></entity>
<entity id name="3"><attribute name="x">8</attribute><attribute name="y">9</attribute></entity>

我想使用 xlstproc 应用转换,但它给我一个解析错误,因为它不是一个格式良好的XML(没有单个根元素),因为每一行都是一个完整的XML文档。 / p>

有没有办法可以在不将每个文档放在一个文件中的情况下执行此操作?

我想过要包含一个虚拟根元素,但我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

试试这个Linux / UNIX / Posix shell脚本:

#!/bin/sh

# Assuming x.xsl is your transform,
# and x.xml contains one well-formed doc per line,
# the following loop will perform the transform
# on each line individually

while read i; do
    echo $i | xsltproc x.xsl -
done < x.xml