【问题标题】:How to create an XML?如何创建 XML?
【发布时间】:2014-10-15 09:05:41
【问题描述】:

我在创建非常简单的 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);

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

【问题讨论】:

    标签: xml haxe


    【解决方案1】:

    问题是 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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 2013-04-27
      • 2023-03-10
      • 2015-05-08
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      相关资源
      最近更新 更多