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

标签 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 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>

请提出建议。

最佳答案

您调用了错误的方法,请参阅this question and answer.

您应该调用XmlDocument.Load


事实上,你最好这样做

var doc = XDocument.Load("path");

并使用 linq to xml.

关于c# - 在 XmlDocument 中加载 xml 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735617/

相关文章:

c# - 如何在 Unity 中屏蔽自定义 UI 图形?

c# - sqlhelper 参数缓存中正在使用什么 "cache"

c# - 基类设置为派生类,无法调用派生类中的方法?

C# 正确的程序结构

c# - 如何使用 Unity 一次注入(inject)两个实现?

c# - Nuke 构建 .nuke 文件并构建多个解决方案

c# - 通过 C# silverlight 将动画重复行为设置为永远

c# - 当您执行 GetType() 时真正发生了什么?

c# - MVC3 中的 POCO 类和 ViewModel

c# - 构造函数中的实例化或字段定义中的实例化有什么区别?