2014-10-15 1 views
0

У меня возникли проблемы с созданием очень простого XML-файла. 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); 

Но это не работает. Как просто установить значение узла?

ответ

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); 

Ive создали простой тест здесь: http://try.haxe.org/#104d0

Надежда, что помогает.

Смежные вопросы