I have a string in xml format and I wish to convert it to a hash using LIBXML. How can I do so in perl?
2 に答える
ディストリビューションを検索するXML::LibXML
と、そのような機能のサポートは を介した属性のみに限定されているようですXML::LibXML::AttributeHash
。
引用するにはXML::LibXML::DOM
:
また、覚えておく必要があります。
XML::LibXML
これは、実際には の C レベルに存在する libxml2 ノードへのインターフェイスですXML::LibXML
。これは、各ノードが perl ハッシュまたは配列とは異なる構造への参照であることを意味します。これらの構造体の値にアクセスする唯一の方法は、 によって提供される DOM インターフェイスを介することXML::LibXML
です。これはまた、 単純にノードを継承して新しいメンバー変数を追加することはできません。それらはハッシュ キーであるためです。XML::LibXML
ただし、XML 文字列をハッシュ化できるモジュールは他にもたくさんあります。
XML::LibXMLには完全に優れた DOM インターフェースがありますが、「ハッシュに変換」したい場合は、自分で DOM トラバーサルを行ってデータを必要な形式のハッシュに滑らかにするか、次のようなものを使用する必要があります。libxml の代わりにXML::Simple 。XML::Simple は信頼性の高い相互運用性にとっては恐ろしいものですが、時には最も簡単なこともあります。