Esempio n. 1
0
        /** 递归构造字符串 */
        private void buiildXMLString(StringBuilder sb, int tabNum)
        {
            for (int i = 0; i < tabNum; i++)
            {
                sb.Append("  ");
            }

            sb.Append('<');
            sb.Append(_name);

            string[] keys   = _propertys.getKeys();
            string[] values = _propertys.getValues();
            string   k;

            for (int i = keys.Length - 1; i >= 0; --i)
            {
                if ((k = keys[i]) != null)
                {
                    sb.Append(' ');
                    sb.Append(k);
                    sb.Append('=');
                    sb.Append('"');
                    sb.Append(values[i]);
                    sb.Append('"');
                }
            }

            if (_children.isEmpty())
            {
                if (_value != null)
                {
                    sb.Append(">");
                    sb.Append(_value);
                    sb.Append("</");
                    sb.Append(_name);
                    sb.Append(">\n");
                }
                else
                {
                    sb.Append("/>\n");
                }
            }
            else
            {
                if (_value != null)
                {
                    sb.Append(">");
                    sb.Append(_value);
                    sb.Append("\n");
                }
                else
                {
                    sb.Append(">\n");
                }

                XML[] values1 = _children.getValues();

                for (int i = 0, len = _children.size(); i < len; ++i)
                {
                    values1[i].buiildXMLString(sb, tabNum + 1);
                }

                for (int i = 0; i < tabNum; i++)
                {
                    sb.Append("  ");
                }

                sb.Append("</");
                sb.Append(_name);
                sb.Append(">\n");
            }
        }