我在创建非常简单的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);
但这不起作用。 我如何简单地设置节点值?
答案 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
希望有所帮助。