人気ブログランキング | 話題のタグを見る
XPathで要素ノード数取得
目標
指定ノードを配列に入れて 配列の要素数を取得る

出来たのはこんな↓

titArrayでは要素内容(titleのテキストノード)の配列
boxArrayでは要素ノード(boxの要素ノード)をまるっと取得した配列
の 二つを作って見比べてみました

**xml(ファイル名:myxml.xml)
<?xml version="1.0" encoding="utf-8"?>
 <myxml>
  <box>
   <title>01タイトル</title>
   <text>01テキストテキストテキスト</text>
  </box>
  <box>
   <title>02タイトル</title>
   <text>02テキストテキストテキスト</text>
  </box>
 </myxml>


**as2
import com.xfactorstudio.xml.xpath.*;
var _myxml:XML = new XML();
_myxml.ignoreWhite = true;
_myxml.おnLoad = function(success) {
 if (success) {
  XMLParse();
 }
};
_myxml.load("xml/myxml.xml");

var boxArray:Array = new Array();
var titArray:Array = new Array();
var boxNodes:Number;

function XMLParse():Void {
 //配列作り
 titArray = XPath.selectNodes(_myxml, "myxml/box/title/text()");
 boxArray = XPath.selectNodes(_myxml, "myxml/node()");
 //要素数取得
 boxNodes = boxArray.length;
}


これで
trace(boxNodes);
とかやると 2 って出るはず

-----------------------
テキストノード取得なら text()
要素ノードごとなら node()
-----------------------

因みに
テキストノードが無い所で text() を使うと値の取得ができませんから!
例えば 今グリ-ンでマーカつけてる node() を text() にすると
trace(boxNodes); は 0って出てきます
by isunonusi | 2009-01-16 18:08 | as