C# 在XmlDocument中加载xml文件时出错
您好,我有下面的xml文件,我正试图使用下面的代码将其加载到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
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);
-它起作用了!