1

我有一个 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 脚本进行过类似的转换,请建议..

可以简单地使用grep and sed command.

4

2 回答 2

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
于 2013-09-12T12:53:36.033 回答
1

搜索了很多,终于能够使用简单的grep and sedunix 命令从 xml 创建属性文件。

几个链接足以参考:

如何使用 sed 替换换行符 (\n)?

使用一些 Unix 命令将每个备用行放在一列中

该脚本有效:

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 命令执行相同操作的人请提出建议。

于 2013-09-13T12:09:15.680 回答