/** 递归构造字符串 */ 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"); } }