1

XML ファイルから特定のタグ属性を読み取り、それらを Template-Document に返す必要があります。ファイル自体の読み取り
が完了しました。1 つのタグのみを読み取り、その属性を解析するにはどうすればよいですか?

<?xml version="1.0" encoding="UTF-8"?>
<instances
name="instance-name"
port="60535"
username="bar"
password="foo"
string_var="barfoo">
some xml (up to 5k lines and 3 k elements i do not need)
</instances>

インスタンスの ">" に遭遇するまで文字列を読むにはどうすればよいですか? そして、どのように値を変数に入れることができますか?

必要な出力:

TPAR_PORT = 60535
TPAR_USERNAME = bar
TPAR_PASSWORD = foo
TPAR_INSTANCE = instance-name

ちなみに、値にシングルクォートがあってもなくても構いません

4

2 に答える 2

1

適切な XML パーサーを使用してください。ただし、例は整形式の XML ではありません: fooXMLbar宣言では許可されません。?>これは、単純な ではなく、で終わる必要があり>ます。また、encodingの代わりに を使用する必要がありcharsetます。

ファイルを修正したら、適切なツールの使用を開始できます。

<?xml version="1.0" charset="UTF-8"?>
<instances
name="instance-name"
port="60535"
username="bar"
password="foo"
string_var="barfoo">
some xml
</instances>

たとえば、次xmllint--shellオプションを使用できます。

$ xmllint 1.xml --shell  <<<'cat /instances/@port'
/ > cat /instances/@port
 -------
 port="60535"
/ >

私のお気に入りのツールはxshです:

$ xsh <<<'open 1.xml ; echo /instances/@port'
60535
于 2013-01-08T08:49:08.377 に答える
0

これはどう

while read
do
  eval $REPLY 2>/dev/null
done < a.xml
于 2013-01-08T09:10:02.547 に答える