是否可以只使用C#XmlReader构建dom树?

是否可以只使用C#XmlReader构建dom树?,c#,xml,xmlreader,C#,Xml,Xmlreader,我想在任何有效xml字符串上使用XmlReader构建dom树,而不使用类XmlDocument或类XDocument。 我很难确定元素是否是元素的子节点。因为元素没有结束标记。如果这个困难得到解决,那么我将能够生成Dom树。 有人知道如何解决这个问题吗,或者有人知道如何使用XmlReader动态构建DOM树吗 Xml内容: <?xml version="1.0" encoding="utf-8" ?> <root> <plane visible="fals

我想在任何有效xml字符串上使用XmlReader构建dom树,而不使用类XmlDocument或类XDocument。 我很难确定元素
是否是元素
的子节点。因为元素
没有结束标记。如果这个困难得到解决,那么我将能够生成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)

这里的问题是
标记不是
标记的父级-它是它的同级。如果
标记需要是
标记的父元素,则需要将其包装在xml中

如果无法更改xml,可以使用
xr.IsEmptyElement
确定标记是否为自关闭标记,并使用自定义逻辑相应地解决该问题