XmlNode.OwnerDocument.ChildNodes is empty

本文关键字:empty is ChildNodes OwnerDocument XmlNode | 更新日期: 2023-09-27 18:14:48

我从web服务获得一个XmlElement。我得到了意想不到的结果,因为xmlElement.OwnerDocument.ChildNodes是空的。这怎么可能呢?

这是xml:

<tns1:VideoSource xmlns:tns1="http://www.onvif.org/ver10/topics">
   <MotionAlarm wstop:topic="true" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns="http://www.onvif.org/ver10/events/wsdl">
   </MotionAlarm>
</tns1:VideoSource>

XmlNode.OwnerDocument.ChildNodes is empty

我用下面的代码测试了你的xml,有像你说的孩子。我怀疑可能有一些白色字符正在产生错误。如果你从一个网站(可能是一个流)得到数据,在流的末尾可能会有一些不可见的空字符。确保您的流类使用UTF8编码。一些流的默认编码是Ascii,它可以改变字符和添加填充字符,这可能会产生问题。

           string input =
                "<tns1:VideoSource xmlns:tns1='"http://www.onvif.org/ver10/topics'">" +
                  "<MotionAlarm wstop:topic='"true'" xmlns:wstop='"http://docs.oasis-open.org/wsn/t-1'" xmlns='"http://www.onvif.org/ver10/events/wsdl'">" +
                  "</MotionAlarm>" +
                "</tns1:VideoSource>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(input);
            XmlNodeList videoSource = doc.ChildNodes;
            XmlNodeList motionAlarm = videoSource[0].ChildNodes;​