javafx.data.pull.PullParser は XML と JSON は最初からサポートされている
ここ がわかりやすかった
こんな XML をパースすると
More...
sandwich.xml
- <!--xml version="1.0" encoding="UTF-8"?-->
- <bread sesame="true">
- <catchup>
- <hamburguer>
- <cheese type="chedar">
- <maionese>
- <lettuce>
- </lettuce></maionese></cheese></hamburguer></catchup></bread>
- import java.io.FileInputStream;
- import javafx.data.pull.Event;
- import javafx.data.pull.PullParser;
- import javafx.ext.swing.SwingList;
- import javafx.ext.swing.SwingListItem;
- import javafx.scene.Scene;
- import javafx.stage.Stage;
- var list = SwingList { width: 600 height: 300 }
- var myparser = PullParser {
- documentType: PullParser.XML;
- onEvent: function (e: Event) {
- var item = SwingListItem {
- text: "event {e}"
- };
- insert item into list.items;
- }
- input: new FileInputStream("/tmp/sandwich.xml");
- }
- myparser.parse();
- Stage {
- title: "XML Sandwich"
- scene: Scene { content: list }
- }
e : Event の中身がリストになって出力される
結果は ここ
Event の要素は data.pull.Event に定義されている
variables
type : Integer current Event type
typeName : String current Event name
level : Integer depth of Node
qname : QName name of XML element
text : String XML text
variable of QName (javafx.data.xml.QName)
name : String
namespaces : String
functions
getAttributeValue(qname : QName) : String
type はこんな感じで使う
if(e.type == PullParser.START_ELEMENT){
...
}
variables of PullParser
START_DOCUMENT : Integer (=7)
END_DOCUMENT : Integer (=8)
START_ELEMENT : Integer (=1)
END_ELEMENT : Integer (=2)
TEXT : Integer (=4)
qname はこんな感じで使う
if(e.qname.name.equals("bread")){
...
}
xml が
<cheese type="chedar"/>
のようになっているとき、 getAttributeValue で type の値を得る
if(e.qname.name.equals("cheese")){
var cheesetype = e.getAttributeValue(QName{name:"type"});
// cheesetype = "chedar" になる
....
}
0 件のコメント:
コメントを投稿