大家好我在需要加载xml时遇到问题
我的代码就像
Stream.Seek(0,SeekOrigin.Begin); xmlDoc.Load(Stream); //--> throw XmlException (multiple root elements in 14,22) xmlDoc.PreserveWhitespace = true;
xml文件是
<soapenv:Envelope xmlns:dummy=" http://www.somedomian.com/dummybus/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header Id="IDH"> <dummy:authentication> <id>Unique</id> <userid>myuser</userid> </dummy:authentication> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsu:Timestamp> <wsu:Created>2015-09-07T12:21:15</wsu:Created> <wsu:Expires>2015-09-08T12:21:15</wsu:Expires> </wsu:Timestamp> </wsse:Security> </soapenv:Header> <!--- This is line 14 and > is a column 22---> <soapenv:Body> <dummy:dummybus> <msg>X1</msg> </dummy:dummybus> </soapenv:Body> </soapenv:Envelope>
<信封> tag是文件的根,为什么发送此错误以及如何读取我的文件?
我找到了有趣的东西
当我保存文件时,而不是将其保存在Stream中,完美加载
xmlDoc.Load(urlToFile); xmlDoc.PreserveWhitespace = true;
看来这个错误只发生在Stream中,为什么?
此方法将String中的xml转换为MemoryStream
public class XmlUtil { public static MemoryStream GenerateStreamFromString(string s) { MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(s); writer.Flush(); stream.Position = 0; return stream; }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。