我有一个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
即可完成。
答案 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命令以任何其他方式执行相同操作。