Trying to open this test file, which exists in a folder under my solution:
C:\dev\trunk\Development\WebSvc\WCFProj\Xml\po.xml
My c# method is :
public XmlDocument generateXmlResponse() { string appDir = AppContext.BaseDirectory; XmlDocument xml = new XmlDocument(); xml.LoadXml(@"Xml\\ResponseTempl.xml"); return xml; }
and the exception message is :
"Data at the root level is invalid. Line 1, position 1."
Now when I step thru the code, I can use the relative path :
appDir + @"Xml\po.xml"
which correctly resolves to:
C:\dev\trunk\Development\WebSvc\WCFProj\Xml\po.xml
and I just took the sample PurchaseOrder.xml
from the ms website https://msdn.microsoft.com/en-us/library/bb343181(v=vs.110).aspx :
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> <Address Type="Shipping"> <Name>Ellen Adams</Name> <Street>123 Maple Street</Street> <City>Mill Valley</City> <State>CA</State> <Zip>10999</Zip> <Country>USA</Country> </Address> <Address Type="Billing"> <Name>Tai Yee</Name> <Street>8 Oak Avenue</Street> <City>Old Town</City> <State>PA</State> <Zip>95819</Zip> <Country>USA</Country> </Address> <DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes> <Items> <Item PartNumber="872-AA"> <ProductName>Lawnmower</ProductName> <Quantity>1</Quantity> <USPrice>148.95</USPrice> <Comment>Confirm this is electric</Comment> </Item> <Item PartNumber="926-AA"> <ProductName>Baby Monitor</ProductName> <Quantity>2</Quantity> <USPrice>39.98</USPrice> <ShipDate>1999-05-21</ShipDate> </Item> </Items> </PurchaseOrder>
The issue here is that the following line:
xml.LoadXml(@"Xml\ResponseTempl.xml");
Is trying to load the string as XML and giving you the error as it is invalid XML. LoadXml should be used like so:
xml.LoadXml("<item><name>wrench</name></item>");
Since you are trying to read from a file you need to use: https://msdn.microsoft.com/en-us/library/875kz807(v=vs.110).aspx
This will look like the following:
xml.Load(@"Xml\ResponseTempl.xml");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.