LoadXml 加载XML时,报错:“根级别上的数据无效。 行1,位置1“

==XML===================================

<?xml version="1.0" encoding="utf-8"?>
<ReportMetadata>
<BirthDay>1981/12/10 0:00:00</BirthDay>
<Gender>1</Gender>
<Phone>13363635787</Phone>
<Age>38</Age>
<Weight>59</Weight>
<Height>164</Height>
<Diagnosis>1、建议继续保持良好的饮食、运动习惯。2、定期复查骨密度。</Diagnosis>
<CheckDate>2019/3/7 15:28:12</CheckDate>
<Result>
<BMDCheckResult>
<Fracturerisk>0.1</Fracturerisk>
<Percentage>-1</Percentage>
<Physical>成年人</Physical>
<SOS>4157</SOS>
<TValue>-0.27192983031272888</TValue>
<ZValue>-0.14364035427570343</ZValue>
<HP>0</HP>
<STI>0</STI>
<EOA>0</EOA>
<RRF>0</RRF>
<PAB>0</PAB>
<LimbSide>桡骨远端</LimbSide>
</BMDCheckResult>
</Result>
</ReportMetadata>

==ENDXML===================================

string str = System.Text.Encoding.UTF8.GetString(byteArray);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(str);

报错:“根级别上的数据无效。 行1,位置1“

解决过程:

1. Load前加了 str=str.Trim(); 

xmlDoc.LoadXml(str.Trim()); 未能解决

2.替换第一个 "<"

XmlDocument xmlDoc = new XmlDocument();
string xmlData = "<" + str.Substring(str.IndexOf('<') + 1);
xmlDoc.LoadXml(xmlData);

问题解决,原因不知道。

原文地址:https://www.cnblogs.com/mapstar/p/10500284.html