現在、受信するXMLリクエストをXML::Simpleで解析するPerl CGIスクリプトがあります。次のように入ってくるXMLの規則は次のとおりです。XMLで動的なネストされた値のペアにアクセスする
<?xml version="1.0" encoding="utf-8" ?>
<XMLRequest>
<CORE>
<CORE ID="14">
<PARENT_ID>1</PARENT_ID>
<CORE_ID>14</CORE_ID>
<FORM_ID>1423</FORM_ID>
<SECURITY_ID>1</SECURITY_ID>
<AREA_ID>3</AREA_ID>
<SUB_PARENT_ID>1</SUB_PARENT_ID>
<SUB_AREA_ID>1</SUB_AREA_ID>
</CORE>
<CORE ID="15">
<PARENT_ID>1</PARENT_ID>
<CORE_ID>15</CORE_ID>
<FORM_ID>1424</FORM_ID>
<SECURITY_ID>1</SECURITY_ID>
<AREA_ID>3</AREA_ID>
<SUB_PARENT_ID>1</SUB_PARENT_ID>
<SUB_AREA_ID>2</SUB_AREA_ID>
</CORE>
</CORE>
</XMLRequest>
私は名前のコンポーネントは「コア」と「ID」の値である値であり、名前/値ペアにし、大会から取得する必要があります。しかし、このコンベンションでは、「CORE」は可能な値の変化するリストを表しています。 ASの場合、XMLinはそのXMLを解析し、最上位と2次の 'CORE'はハッシュですが、 'ID'と残りのデータはハッシュの配列として解釈します。
私は、XML :: SimpleのKeyAttrオプションを使用して、値に対して 'CORE'の可能なバリエーションをすべて列挙しているという点から見てきましたが、これは変更可能なリストなので実行できません。もう一つは、ネストされたWhilesとForステートメントを使用して必要なコンポーネントに到達しているだけですが、直感的ではありません。私はXML :: LibXMLを見て始めましたが、少しジャンプするのは難しいようです。
大変感謝しています。
、見出力、(各CORE COREノードの子ノード、XmlRequestノードの子ノード) – BigMike
XMLの変更方法を説明してください。 ''要素は異なるタグ名を持つことができますか?外側の ''要素は常に内側のものと同じ名前ですか?単に 'ID'属性を持つすべての要素がほしいと思いますか? –
Borodin