【发布时间】:2013-03-12 14:11:03
【问题描述】:
我想用 XmlReader 在 any 有效的 xml 字符串 不使用 使用类 XmlDocument 或类 XDocument 构建一个 dom 树强>。
我很难确定元素<tank> 是否是元素<plane> 的子节点。因为元素 <plane> 没有结束标签。如果这个困难解决了,那么我就可以生成Dom树了。
有谁知道如何解决这个问题,或者有谁知道如何使用 XmlReader 动态构建 DOM 树?
Xml 内容:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<plane visible="false" />
<tank>
<weapon name="cannon">equipped</weapon>
</tank>
<ship>
<weapon name="cannon">equipped</weapon>
</ship>
</root>
显示详细信息的脚本
XmlReader xr = XmlReader.Create(xmlContent);
while (xr.Read())
{
Logger.Log(string.Concat("[", xr.NodeType, "][", xr.ValueType, "]", xr.Name, ",(",xr.HasValue,")" + xr.Value));
}
详情
[XmlDeclaration] [System.String] xml,(True)version="1.0" encoding="utf-8"
[Element] [System.String] root,(False)
[Element] [System.String] plane,(False)
[Element] [System.String] tank,(False)
[Element] [System.String] weapon,(False)
[Text] [System.String] ,(True)equipped
[EndElement] [System.String] weapon,(False)
[EndElement] [System.String] tank,(False)
[Element] [System.String] ship,(False)
[Element] [System.String] weapon,(False)
[Text] [System.String] ,(True)equipped
[EndElement] [System.String] weapon,(False)
[EndElement] [System.String] ship,(False)
[EndElement] [System.String] root,(False)
【问题讨论】: