窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
xml树 | Xml树 | |
按钮_加载.标题 = "加载XML文件"
按钮_保存.标题 = "保存XML文件"
编辑框1.是否允许多行 = 真
编辑框1.滚动条 = 2
.局部变量 文件路径, 文本型
.局部变量 xml文本, 文本型
文件路径 =
浏览文件夹 ("选择XML文件", ""
) + "\data.xml"
如果 (文件路径 = "\data.xml"
)
返回 () xml文本 =
安全加载XML (文件路径
)
如果 (xml文本 = ""
)
信息框 ("加载XML文件失败", 0, "错误",
)

编辑框1.内容 = xml文本
信息框 ("XML加载成功,CDATA格式已保留", 0, "成功",
)
.局部变量 保存路径, 文本型
.局部变量 xml文本, 文本型
保存路径 =
浏览文件夹 ("选择保存位置", ""
) + "\output.xml"
如果 (保存路径 = "\output.xml"
)
返回 ()xml文本 = 编辑框1.内容
如果 (写到文件 (保存路径,
到字节集 (xml文本
))
)
信息框 ("XML保存成功", 0, "成功",
)
信息框 ("保存文件失败", 0, "错误",
)
变量名 | 类 型 | 静态 | 数组 | 备 注 |
xml文本 | 文本型 | | |
临时树 | Xml树 | | |
临时树.
创建 ()
如果 (临时树.
加载文件 (文件路径
) =
假)
返回 (""
)
xml文本 =
获取带CDATA的XML (临时树
)临时树.
销毁 ()返回 (xml文本
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
xml文本 | 文本型 | | |
CDATA节点路径 | 文本型 | | 0 |
i | 整数型 | | |
xml文本 = xml树.
取xml数据 () 查找CDATA节点路径 (xml树, "", CDATA节点路径
)
计次循环首 (取数组成员数 (CDATA节点路径
), i
)
.局部变量 节点名, 文本型

.局部变量 节点内容, 文本型


节点名 =
取路径末节点名 (CDATA节点路径
[i
])
节点内容 = xml树.
取文本 (CDATA节点路径
[i
], ""
)

xml文本 =
子文本替换 (xml文本,

"<" + 节点名 + ">" + 节点内容 + "",

"<" + 节点名 + ">",

, ,
真)
计次循环尾 ()返回 (xml文本
)|
查找CDATA节点路径 | | |
|
xml树 | Xml树 | | | |
当前路径 | 文本型 | | | | 路径数组 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
子节点数 | 整数型 | | |
i | 整数型 | | |
子节点数 = xml树.
取子节点数 (当前路径
)
计次循环首 (子节点数, i
)
.局部变量 节点类型, 整数型

.局部变量 新路径, 文本型


新路径 = 当前路径 + "/" + xml树.
取节点名 (当前路径 + "
[" +
到文本 (i
) + "
]"
)
节点类型 = xml树.
取节点类型 (新路径
)

如果 (节点类型 =
#CDATA节点 )
加入成员 (路径数组, 新路径
)
查找CDATA节点路径 (xml树, 新路径, 路径数组
)
计次循环尾 ()位置 =
倒找文本 (完整路径, "/", ,
假)
如果 (位置 > 0
)
返回 (取文本右边 (完整路径,
取文本长度 (完整路径
) - 位置
))
返回 (完整路径
)
.局部变量 xml文本, 文本型
xml文本 = 编辑框1.内容
如果 (xml文本 = ""
)
信息框 ("请先加载XML文件", 0, "提示",
)
返回 ()编辑框1.内容 =
格式化XML (xml文本
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
格式化文本 | 文本型 | | |
缩进 | 文本型 | | |
i | 整数型 | | |
格式化文本 = ""
缩进 = " "
如果 (寻找文本 (xml文本, " 格式化文本 =
取文本左边 (xml文本,
寻找文本 (xml文本, "?>", ,
假) + 2
) +
#换行符 
xml文本 =
取文本右边 (xml文本,
取文本长度 (xml文本
) -
寻找文本 (xml文本, "?>", ,
假) - 2
)
格式化文本 = "" +
#换行符 
格式化文本 = 格式化文本 +
子文本替换 (xml文本, "><", ">" +
#换行符 + "<", , ,
真)返回 (格式化文本
).局部变量 xml文本, 文本型
xml文本 = 编辑框1.内容
如果 (xml文本 = ""
)
信息框 ("请先加载XML文件", 0, "提示",
)
返回 ()
如果 (验证XML格式 (xml文本
))
信息框 ("XML格式有效", 0, "验证通过",
)
信息框 ("XML格式有误", 0, "验证失败",
)
验证树.
创建 ()返回 (验证树.
解析 (xml文本
))