如何创建XML?

时间:2014-10-15 09:05:41

标签: xml haxe

我在创建非常简单的XML文件时遇到了麻烦。 我需要的XML:

<data>
     <id>111</id>
     <message>hello</message>
     <something>...</something>
</data>

我是这样做的:

var xml = Xml.createElement("data");

var id = Xml.createElement('id');
id.nodeValue = "111"
xml.addChild(id);

var message = Xml.createElement('message');
message.nodeValue = "hello"
xml.addChild(message);

var message = Xml.createElement('message');
message.nodeValue = "...";
xml.addChild(message);

但这不起作用。 我如何简单地设置节点值?

1 个答案:

答案 0 :(得分:2)

问题是nodeValue不适用于元素(http://api.haxe.org/Xml.html),因此您需要使用createPCData向其添加子文本节点,例如:

var xml = Xml.createElement("data");

var id = Xml.createElement('id');
id.addChild(Xml.createPCData("111"));
xml.addChild(id);

var message = Xml.createElement('message');
message.addChild(Xml.createPCData("hello"));
xml.addChild(message);

var something = Xml.createElement('something');
something.addChild(Xml.createPCData("..."));
xml.addChild(something);

那应该按照你的预期工作。创建文本节点后,您可以使用nodeValue(如果您愿意),例如:

var somethingElse = Xml.createElement('somethingElse');
var textNode = Xml.createPCData("theText");
textNode.nodeValue = "newText";
somethingElse.addChild(textNode);
xml.addChild(somethingElse);

我在这里创建了一个简单的测试:http://try.haxe.org/#104d0

希望有所帮助。