
perlを使って、下記のXMLファイルを出力したいです。
<?xml version='1.0' encoding='UTF-8' ?>
<member>
<No>00001</No>
<Product>
<ProductSeqNo>0</ProductSeqNo>
<ProductName>スマートフォン</ProductName>
</Product>
<Product>
<ProductSeqNo>3</ProductSeqNo>
<ProductName>モニタ</ProductName>
</Product>
<RegistDate>2012/11/29</RegistDate>
</member>
<Product>タグの部分は、編集情報を設定するため、下記のようにプログラミングしています。
my $p = {
member => [
{
No => "$id",
Product => {},
RegistDate => "$RegistDate"
}
]
};
my $AddData = {
Product =>
{
ProductSeqNo => ["$seqno"],
ProductName => ["ProductName"]
}
};
push(@{$p->{member}}, $AddData); # データを追加
my $x = new XML::Simple;
my $xml = $x->XMLout($p, NoAttr=>1, KeepRoot=>1, OutputFile => "$dir/$Details", XMLDecl => "<?xml version='1.0' encoding='UTF-8' ?>");
上記を動かすと、以下のように出力されます。
<?xml version='1.0' encoding='UTF-8' ?>
<member>
<No>00001</No>
<Product></Product>
</member>
<member>
<Product>
<ProductName>ProductName2</ProductName>
<ProductSeqNo>1</ProductSeqNo>
</Product>
</member>
最初のイメージで出力する方法をご存知の方は教えて下さい。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> push(@{$p->{member}}, $AddData); # データを追加
XML::Simple についてはわかりませんが、上記の push 文を実行後の $p のデータ構造は次のようになります。
$p = {
member => [
{
No => "$id",
Product => {},
RegistDate => "$RegistDate"
},
{
Product =>
{
ProductSeqNo => ["$seqno"],
ProductName => ["ProductName"]
}
}
]
};
必要なのは member が指す配列に要素を追加することではなく、Product が指す値の中にデータを追加する事だと思います。そのためには Product => {} を Product => [] に変更して、その無名配列の中に ProductSeqNo と ProductName を格納したハッシュを追加してはどうでしょうか。
Product => [],
...
push @{$p->{member}->[0]->{Product}}, $AddData->{Product};
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 憲法・法令通則 (⇩)下記の URL にある M&P FPC という銃は、アメリカ国内のどの州でも、民間市場で買える 4 2023/04/23 19:51
- エアガン・モデルガン (⇩)下記の URL にある Heckler & Koch SP5K-PDW For Sale の、 1 2022/09/21 15:08
- その他(パソコン・周辺機器) RBG信号の2分岐についての質問です 3 2022/06/23 19:42
- アプリ Android studio 初心者 Hello Android!しか表示されない 1 2023/08/01 08:47
- ルーター・ネットワーク機器 無線LANルーターについて。 冷蔵庫などの電波で無線LAN接続が妨害される場合は、5GHzで接続した 2 2022/09/28 12:37
- FTTH・光回線 無線LANルーターについて。 冷蔵庫などの電波で無線LAN接続が妨害される場合は、5GHzで接続した 3 2022/09/28 12:40
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- レディース このスカートのグレーに https://m.dholic.co.jp/product/goodvie 1 2022/09/19 15:26
- イヤホン・ヘッドホン・補聴器 イヤホンについて ダイソーのAL-001イヤホンとappleの純正イヤホンどっちの方が音質いいですか 4 2023/02/10 10:46
- ビデオカメラ カメラのグリップハンドルをつけたまま、三脚にクイックシューで取り付けたいのでアドバイス下さい。 1 2023/02/25 02:28
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでTransposeの不思議
-
VBAのautofilter、criteriaの配...
-
DataGridViewに配列の値を表示...
-
Excel VBA ユーザーフォームの...
-
クラスに配列を渡す方法
-
Perlで構造体はつくれませんか?
-
perl 初等プログラミングについて
-
VB Shell sort
-
リストボックスに縦スクロール...
-
二次元配列における要素数のは...
-
可変長配列を、動的確保した固...
-
perl 配列の要素数について
-
jcode->jfold で禁則処理
-
ログファイルの記録数
-
文字の整列(printf)
-
perl qw(aaa bbb ccc)[$hoge]...
-
組み合わせについての質問です...
-
複数の配列の全ての組み合わせ...
-
サブルーチンの戻り値
-
VBA 多次元配列を用いてグルー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでTransposeの不思議
-
VBAのautofilter、criteriaの配...
-
perlで配列の要素が空なのを知...
-
Excel VBA ユーザーフォームの...
-
二次元配列のインデックスについて
-
perlで2次元配列をサブルーチ...
-
Dim flag(4) as boolean で配列...
-
マクロ Publicでの配列定義
-
クラスに配列を渡す方法
-
リストボックスに縦スクロール...
-
二次元配列における要素数のは...
-
VB6で配列の最大値を簡単に求め...
-
チェックボックスのperlでの値...
-
Strawberry Perl for Windows ...
-
VBScript 配列
-
隣同士の数字を足し合わせる
-
可変長配列を、動的確保した固...
-
DBIを使ってSelect文 複数のカ...
-
perl 配列の要素数について
-
参照配列の要素数の求め方は?
おすすめ情報