如何使用unix shell脚本将xml文件转换为属性文件

时间:2013-09-12 12:37:54

标签: xml shell unix

我有一个xml文件source.xml。我想使用此xml文件信息中的键值对创建属性文件。

<?xml version="1.0" ?>
<persons>
  <person>
    <name>John</name>
    <family-name>Smith</family-name>
  </person>
  <person>
    <name>Morka</name>
    <family-name>Ismincius</family-name>
  </person>
</persons>

属性文件应该看起来像

"John" = "Smith";
"Morka" = "Ismincius";

任何人使用Unix Shell Script进行类似的转换请建议..

只需使用grep and sed command即可完成。

2 个答案:

答案 0 :(得分:1)

这可能有帮助吗?

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//person">
"<xsl:value-of select="name"/>" = "<xsl:value-of select="family-name"/>"
</xsl:template>
</xsl:stylesheet>

将其另存为x.xslt 并做

xsltproc x.xslt file.xml

答案 1 :(得分:1)

搜索了很多,最后能够使用简单的grep and sed unix命令从xml创建属性文件。

很多链接足以引用:

How can I replace a newline (\n) using sed?

put every alternate row in a column using some Unix commands

脚本有效:

grep -e "<name>" -e "<family-name>" source.xml  | 
sed -e 's/<name>/"/' -e 's/<\/name>/"/' | 
sed -e 's/<family-name>/"/' -e 's/<\/family-name>/";/' |
sed 's/ //g' |
sed 'N;s/\n/ = /' > my.properties

任何人都可以使用简单的unix命令以任何其他方式执行相同操作。