XMLまとめ

XMLの構成

XMLは要素(Element)と属性(Attribute)で構成される。
要素値の呼ばれ方はコンテンツとかプロパティとかあるけど、ここでは以下の呼び名で統一する。

  • 要素値を持つもの
<要素名 属性名="属性値">要素値</要素名>
<ElementName AttributeName="AttributeValue">ElementValue</ElementName>
  • 要素値を持たないもの
<要素名 属性名="属性値"/>
<ElementName AttributeName="AttributeValue"/>

属性はなくても構わないが、属性名のみは持てない

<要素名/>←これはOK
<要素名 属性名/>←これはNG

AS3のXML

XML型とXMLList型二つを使って操作する。
ごっちゃになりやすいので注意。


xml.Chapter[i] == xml.child("Chapter")[i] == xml.children()[i] == XML
xml.Chapter == xml.child("Chapter") == XMLList型

要素 Element

//XMLの持つ、指定した要素名のリスト
xml.child("要素名")
//XMLの持つ要素のリスト
xml.children()
//XMLの持つ要素の数
xml.children().length()
//XMLの持つi番目の要素の要素値
xml.children()[i]
//XMLの持つi番目の要素の要素名
xml.children()[i].name()

//指定XMLに指定名の要素があるか?
xml.hasOwnProperty(name:String):Boolean;
//書くならこう
private function IsExistElements(xml:XML, name:String):Boolean{
	//XMLの持つ要素数
	var len:int = xml.children().length;
	//全ての要素の名前を調べる
	for(var i:int = 0 ; i < len ; i++){
		//一致する要素名を発見したらtrue
		if(xml.children[i].name() == name){
			return true;
		}
	}
	//一致する名前がなかったらfalse
	return false
}

属性 Attribute

//XMLの持つ、指定した属性名のリスト
xml.attribute("名前")
//XMLの持つ属性のリスト
xml.attributes()
//XMLの持つ属性の数
xml.attributes().length()
//XMLの持つi番目の属性の属性値
xml.attributes()[i]
//XMLの持つi番目の属性の属性名
xml.attributes()[i].name()

//指定XMLに指定名の属性があるか?
//属性にはなぜかhasOwnPropertyに相当するものがないので自分で書く
private function IsExistAttribute(xml:XML, name:String):Boolean{
	//XMLの持つ属性の数
	var len:int = xml.attributes().length();
	//全ての属性の名前を調べる
	for(var i:int = 0 ; i < len ; i++){
		//一致する属性名を発見したらtrue
		if(xml.attributes()[i].name() == name){
			return true;
		}
	}
	//一致する名前がなかったらfalse
	return false
}
  • 参考

XMLの構造XMLの基本
http://www.techscore.com/tech/XML/Basic/2_1.html
Extendsible Markup Language - Wikipedia
http://ja.wikipedia.org/wiki/XML