Пример #1
0
        public virtual void writeNode(global::Xml @value, string tabs)
        {
            unchecked {
                                #line 50 "/opt/haxe/std/haxe/xml/Printer.hx"
                switch (@value.nodeType)
                {
                case 0:
                {
                                                #line 68 "/opt/haxe/std/haxe/xml/Printer.hx"
                    this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(tabs, "<")))));
                    {
                                                        #line 69 "/opt/haxe/std/haxe/xml/Printer.hx"
                        if ((@value.nodeType != global::Xml.Element))
                        {
                                                                #line 69 "/opt/haxe/std/haxe/xml/Printer.hx"
                            throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, expected Element but found ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                        }

                                                        #line 69 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(@value.nodeName))));
                    }

                                                #line 70 "/opt/haxe/std/haxe/xml/Printer.hx"
                    {
                                                        #line 70 "/opt/haxe/std/haxe/xml/Printer.hx"
                        object attribute = @value.attributes();
                                                        #line 70 "/opt/haxe/std/haxe/xml/Printer.hx"
                        while (global::haxe.lang.Runtime.toBool(global::haxe.lang.Runtime.callField(attribute, "hasNext", 407283053, null)))
                        {
                                                                #line 70 "/opt/haxe/std/haxe/xml/Printer.hx"
                            string attribute1 = global::haxe.lang.Runtime.toString(global::haxe.lang.Runtime.callField(attribute, "next", 1224901875, null));
                            this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat(" ", attribute1), "=\"")))));
                                                                #line 72 "/opt/haxe/std/haxe/xml/Printer.hx"
                            {
                                                                        #line 72 "/opt/haxe/std/haxe/xml/Printer.hx"
                                string input = global::StringTools.htmlEscape(@value.@get(attribute1), new global::haxe.lang.Null <bool>(true, true));
                                                                        #line 72 "/opt/haxe/std/haxe/xml/Printer.hx"
                                this.output.b.Append(((string)(global::Std.@string(input))));
                            }

                                                                #line 73 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)("\"")));
                        }
                    }

                                                #line 75 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (this.hasChildren(@value))
                    {
                                                        #line 76 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(">")));
                        if (this.pretty)
                        {
                                                                #line 77 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)("\n")));
                        }

                                                        #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                        {
                                                                #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                            if (((@value.nodeType != global::Xml.Document) && (@value.nodeType != global::Xml.Element)))
                            {
                                                                        #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                                throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, expected Element or Document but found ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                            }

                                                                #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                            int _g_current = 0;
                                                                #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                            global::Array <object> _g_array = @value.children;
                                                                #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                            while ((_g_current < _g_array.length))
                            {
                                                                        #line 78 "/opt/haxe/std/haxe/xml/Printer.hx"
                                global::Xml child = ((global::Xml)(_g_array[_g_current++]));
                                this.writeNode(child, ((this.pretty) ? (global::haxe.lang.Runtime.concat(tabs, "\t")) : (tabs)));
                            }
                        }

                                                        #line 81 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(tabs, "</")))));
                        {
                                                                #line 82 "/opt/haxe/std/haxe/xml/Printer.hx"
                            if ((@value.nodeType != global::Xml.Element))
                            {
                                                                        #line 82 "/opt/haxe/std/haxe/xml/Printer.hx"
                                throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, expected Element but found ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                            }

                                                                #line 82 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)(global::Std.@string(@value.nodeName))));
                        }

                                                        #line 83 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(">")));
                        if (this.pretty)
                        {
                                                                #line 84 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)("\n")));
                        }
                    }
                    else
                    {
                                                        #line 86 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)("/>")));
                        if (this.pretty)
                        {
                                                                #line 87 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)("\n")));
                        }
                    }

                                                #line 67 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 1:
                {
                                                #line 90 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (((@value.nodeType == global::Xml.Document) || (@value.nodeType == global::Xml.Element)))
                    {
                                                        #line 90 "/opt/haxe/std/haxe/xml/Printer.hx"
                        throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, unexpected ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                    }

                                                #line 90 "/opt/haxe/std/haxe/xml/Printer.hx"
                    string nodeValue = @value.nodeValue;
                    if ((nodeValue.Length != 0))
                    {
                                                        #line 92 "/opt/haxe/std/haxe/xml/Printer.hx"
                        {
                                                                #line 92 "/opt/haxe/std/haxe/xml/Printer.hx"
                            string input1 = global::haxe.lang.Runtime.concat(tabs, global::StringTools.htmlEscape(nodeValue, default(global::haxe.lang.Null <bool>)));
                                                                #line 92 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)(global::Std.@string(input1))));
                        }

                                                        #line 93 "/opt/haxe/std/haxe/xml/Printer.hx"
                        if (this.pretty)
                        {
                                                                #line 93 "/opt/haxe/std/haxe/xml/Printer.hx"
                            this.output.b.Append(((string)("\n")));
                        }
                    }

                                                #line 89 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 2:
                {
                                                #line 52 "/opt/haxe/std/haxe/xml/Printer.hx"
                    this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(tabs, "<![CDATA[")))));
                    {
                                                        #line 53 "/opt/haxe/std/haxe/xml/Printer.hx"
                        if (((@value.nodeType == global::Xml.Document) || (@value.nodeType == global::Xml.Element)))
                        {
                                                                #line 53 "/opt/haxe/std/haxe/xml/Printer.hx"
                            throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, unexpected ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                        }

                                                        #line 53 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(@value.nodeValue))));
                    }

                                                #line 54 "/opt/haxe/std/haxe/xml/Printer.hx"
                    this.output.b.Append(((string)("]]>")));
                    if (this.pretty)
                    {
                                                        #line 55 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)("\n")));
                    }

                                                #line 51 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 3:
                {
                                                #line 57 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (((@value.nodeType == global::Xml.Document) || (@value.nodeType == global::Xml.Element)))
                    {
                                                        #line 57 "/opt/haxe/std/haxe/xml/Printer.hx"
                        throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, unexpected ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                    }

                                                #line 57 "/opt/haxe/std/haxe/xml/Printer.hx"
                    string commentContent = @value.nodeValue;
                    commentContent = new global::EReg("[\n\r\t]+", "g").replace(commentContent, "");
                                                #line 59 "/opt/haxe/std/haxe/xml/Printer.hx"
                    commentContent = global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("<!--", commentContent), "-->");
                    this.output.b.Append(((string)(global::Std.@string(tabs))));
                                                #line 61 "/opt/haxe/std/haxe/xml/Printer.hx"
                    {
                                                        #line 61 "/opt/haxe/std/haxe/xml/Printer.hx"
                        string input2 = commentContent.Trim();
                                                        #line 61 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(input2))));
                    }

                                                #line 62 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (this.pretty)
                    {
                                                        #line 62 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)("\n")));
                    }

                                                #line 56 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 4:
                {
                                                #line 99 "/opt/haxe/std/haxe/xml/Printer.hx"
                    {
                                                        #line 99 "/opt/haxe/std/haxe/xml/Printer.hx"
                        if (((@value.nodeType == global::Xml.Document) || (@value.nodeType == global::Xml.Element)))
                        {
                                                                #line 99 "/opt/haxe/std/haxe/xml/Printer.hx"
                            throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, unexpected ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                        }

                                                        #line 99 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("<!DOCTYPE ", @value.nodeValue), ">")))));
                    }

                                                #line 100 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (this.pretty)
                    {
                                                        #line 100 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)("\n")));
                    }

                                                #line 98 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 5:
                {
                                                #line 96 "/opt/haxe/std/haxe/xml/Printer.hx"
                    {
                                                        #line 96 "/opt/haxe/std/haxe/xml/Printer.hx"
                        if (((@value.nodeType == global::Xml.Document) || (@value.nodeType == global::Xml.Element)))
                        {
                                                                #line 96 "/opt/haxe/std/haxe/xml/Printer.hx"
                            throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, unexpected ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                        }

                                                        #line 96 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)(global::Std.@string(global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("<?", @value.nodeValue), "?>")))));
                    }

                                                #line 97 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (this.pretty)
                    {
                                                        #line 97 "/opt/haxe/std/haxe/xml/Printer.hx"
                        this.output.b.Append(((string)("\n")));
                    }

                                                #line 95 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }


                case 6:
                {
                                                #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                    if (((@value.nodeType != global::Xml.Document) && (@value.nodeType != global::Xml.Element)))
                    {
                                                        #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                        throw ((global::System.Exception)(global::haxe.Exception.thrown(global::haxe.lang.Runtime.concat("Bad node type, expected Element or Document but found ", global::_Xml.XmlType_Impl_.toString(@value.nodeType)))));
                    }

                                                #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                    int _g_current1 = 0;
                                                #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                    global::Array <object> _g_array1 = @value.children;
                                                #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                    while ((_g_current1 < _g_array1.length))
                    {
                                                        #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                        global::Xml child1 = ((global::Xml)(_g_array1[_g_current1++]));
                        this.writeNode(child1, tabs);
                    }

                                                #line 64 "/opt/haxe/std/haxe/xml/Printer.hx"
                    break;
                }
                }
            }
                        #line default
        }