2

XMLファイルをbashで生成する必要があります(C / C ++ / UNIXでしばらく作業しているにもかかわらず、bash /スクリプト言語は初めてです)。今、私はこのようなものを生成しています、それはかなりフラットです

st='<'
et='>'
sl='/'
-------------------
stag() {
      text=$st$1$et 
      echo $text >> output_file
}
--------------------
etag() {
      text=$sl$1
      stag $text
}
--------------------
attr() {
      text=$1
      echo $text >> output_file
}
--------------------

#--Function Call
stag "tag"
attr "xml"
etag "tag"

--------------------

#--output
<tag>xml</tag>

この中で、エラーが発生する可能性が高いと感じています。C++で長い間コーディングした後は、より構造化されたコーディング方法があるはずです。 、私は最初に学ぶ必要があります、ここにplzの投稿....ありがとう...

4

2 に答える 2

3

xmlstarletのようなものを探しています。depyxサブコマンドを使用すると、PYXマークアップをXMLに変換できます

これは、プロトタイピングの目的には十分な場合があります。そうでない場合は、Ruby、Python、またはPerlのよりフル機能のXMLライブラリを調べる必要があります。

于 2012-06-04T16:08:49.630 に答える
0

通常、特殊文字に特殊変数を使用するよりも、文字列を引用する方が簡単です。

text=$st$1$et
echo $text

使用するだけ

echo "<$1>"

またはprintf"<%s>" $ 1

構造に関しては、bashにはおそらく属性に使用できる配列がありますが、それらを関数に渡す唯一の方法は名前によるものであり、値を取得するにはフープをジャンプする必要があります。

a=(foo bar baz)
f() {
  eval printf "\${$1[1]}"
}
f a
=> bar
于 2012-06-04T17:37:19.703 に答える