Haxe 通过 haxe.XML 类内置提供对使用XML数据的支持。
Xml的一个根元素可以使用 Xml.createElement 方法创建。
var root = Xml.createElement('root');
trace(root); // <root />
一个根节点元素也可以通过解析一个字符串包含的 XML 数据来创建。
var root = Xml.parse('<root />').firstElement();
trace(root); // <root />
可以使用 addChild 方法添加子元素到根。
var child:Xml = Xml.createElement('child');
root.addChild(child);
trace(root); // <root><child/></root>
可以使用 set() 方法为元素添加属性。
child.set('name', 'John');
trace(root); // <root><child name="John"/></root>
这段代码解析一个 XML 字符串为一个 对象结构 Xml ,然后访问对象的属性。
var xmlString = '<hello name="world!">Haxe is great!</hello>';
var xml:Xml = Xml.parse(xmlString).firstElement();
trace(xml.nodeName); // hello
trace(xml.get('name')); // world!
trace(xml.firstChild().nodeValue); // Haxe is great!
firstChild 和firstElement 之间的不同是,第二个函数返回的第一个子元素为Xml.Element 类型。
我也也可以用其它方法迭代每个子节点或元素。
for (child in xml) {
// iterate on all children.
}
for (elt in xml.elements()) {
// iterate on all elements.
}
for (user in xml.elementsNamed("user")) {
// iterate on all elements with a nodeName "user".
}
for (att in xml.attributes()) {
// iterator on all attributes.
}
查看 Xml API 文档详细了解它的方法。
静态方法 Xml.parse 可以用来解析 XML 数据 并从其中获得一个 Haxe 值。
var xml = Xml.parse('<root>Haxe is great!</root>').firstElement();
trace(xml.firstChild().nodeValue);
xml.toString() 方法可以用来获取字符串的表示。
var xml = Xml.createElement('root');
xml.addChild(Xml.createElement('child1'));
xml.addChild(Xml.createElement('child2'));
trace(xml.toString()); // <root><child1/><child2/></root>