C# 在XmlDocument中加载xml文件时出错

C# 在XmlDocument中加载xml文件时出错,c#,C#,您好,我有下面的xml文件,我正试图使用下面的代码将其加载到xml文档中- XmlDocument Doc = new XmlDocument(); Doc.LoadXml(@"C:\MappingFiles\InputFile.xml"); 但是它在根级别抛出错误数据是无效的。第1行,位置1 Xml文件是完全结构化的,但仍然存在抛出错误 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <CAS xmln

您好,我有下面的xml文件,我正试图使用下面的代码将其加载到xml文档中-

XmlDocument Doc = new XmlDocument();
Doc.LoadXml(@"C:\MappingFiles\InputFile.xml");
但是它在根级别抛出错误数据是无效的。第1行,位置1

Xml文件是完全结构化的,但仍然存在抛出错误

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CAS xmlns="http://www.test.com/schema/CASXmlSchema">
  <OperationList>
    <Operation id="1">
      <Type>calculate</Type>
      <calculateParams>
        <RequestInfo>
          <CalcRequestTradeParam>
            <TempTradeList>
              <Trades>
                <TemplateDefinitionID>TRADE.EQ.EQEUROPEAN</TemplateDefinitionID>
                <TradeParameters>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Trade ID</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>EU1</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Template</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>TRADE.EQ.EQEUROPEAN</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Currency</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>USD</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Final Fixing Date</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>Date</ParameterType>
                      <NonTabularValue>15-Apr-14</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Ticker</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>C</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Flavor</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>Put</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Position</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>String</ParameterType>
                      <NonTabularValue>Sell</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Number of shares</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>Double</ParameterType>
                      <NonTabularValue>5</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                  <StringToParameterValueEntry>
                    <StringToParameterValueKey>Strike</StringToParameterValueKey>
                    <StringToParameterValueValue>
                      <ParameterType>Double</ParameterType>
                      <NonTabularValue>40</NonTabularValue>
                      <TableValue/>
                    </StringToParameterValueValue>
                  </StringToParameterValueEntry>
                </TradeParameters>
              </Trades>
            </TempTradeList>
          </CalcRequestTradeParam>
          <CalcRequestMarketParam>
            <Expression>Id >= 0</Expression>
          </CalcRequestMarketParam>
          <CalculateRequestOutputs>PV</CalculateRequestOutputs>
          <Currency>USD</Currency>
          <TaskName>XML Request Test</TaskName>
          <JobCount>10</JobCount>
          <CalculationMethod>OnceAndHold</CalculationMethod>
          <TimeFactorSeconds>0</TimeFactorSeconds>
          <ProcessorName/>
          <ProcessorOptions/>
        </RequestInfo>
        <ResultInfo>
          <TaskId>0</TaskId>
          <TradeStartIndex>0</TradeStartIndex>
          <TradeNum>15</TradeNum>
          <MarketStartIndex>0</MarketStartIndex>
          <MarketNum>1</MarketNum>         
          <ResultRequestOutputs>Template</ResultRequestOutputs>
          <ResultRequestOutputs>Currency</ResultRequestOutputs>
          <ResultRequestOutputs>PV</ResultRequestOutputs>
          <RequestType>Individual</RequestType>
          <GroupSelection/>
        </ResultInfo>
        <RequestTimeoutMilliseconds>60000</RequestTimeoutMilliseconds>
      </calculateParams>
    </Operation>
  </OperationList>
</CAS>

计算
欧洲贸易
行业ID
一串
EU1
模板
一串
欧洲贸易
通货
一串
美元
最后确定日期
日期
2014年4月15日
股票行情
一串
C
风味
一串
放
位置
一串
卖
股数
双重的
5.
罢工
双重的
40
Id>=0
光伏
美元
XML请求测试
10
从前
0
0
0
15
0
1.
模板
通货
光伏
个人
60000

请建议。

您调用错误的方法,请参阅

您应该调用
XmlDocument.Load


事实上,你最好还是

var doc = XDocument.Load("path");
并使用

使用XMLDocument.Load()。它接受一个xml文件


然而,XMLDocument.LoadXml()接受xml字符串。

如果您确实想将其作为字符串读入,而不想像其他人建议的那样执行
XMLDocument.Load()
,则可以执行
XMLDocument.LoadXml()
,但它应该作为字符串,首先:

string myFilePath = @"C:\MappingFiles\InputFile.xml";
string allText = File.ReadAllText(myFilePath);

XmlDocument xmlDoc = new XmlDocument();
try
{
    xmlDoc.LoadXml(allText);
}
catch (Exception ex)
{
    Console.WriteLine("Error: " + ex.Message);
}

我发现,即使在文件“<代码> .Load())/>代码>本身时,它也可以工作。

一开始,使用<代码> XDoC/<代码> > <代码> XMLCDOR> <代码>。您的文档在“相关”之前是否有空白空间?我与OP有相同的错误。我试图使用<代码> XMLDCOD.Load()加载文件。。它不起作用。因此我将文件作为字符串读取:
string allText=file.ReadAllText(myFilePath);
,然后执行了
XmlDocument doc=new XmlDocument();doc.LoadXml(allText);
-它起作用了!