我有XDocument.Load()
从文件加载XML而XDocument.Parse()
从字符串加载XML,
有没有办法将它们组合起来并动态加载文件或字符串?
答案 0 :(得分:0)
假设你的意思是XDocument.PARSE()而不是XDocument.PRASE(),我相信下面的函数应该在这方面帮助你。 我们只是在加载之前检查文件是否存在,如果它不存在那么它应该是一个xml字符串。在这两种情况下,我们用try catch覆盖自己并返回null。
要使用下面的内容,我会在继续之前仔细检查返回值是否为空。
if(LoadXml(xmlFile) == null)
{
//enter code for fail to load, will continue if correct.
}
功能:
private XDocument LoadXml(string xmlFile)
{
//initialise a new XDocument
XDocument doc = new XDocument();
//check to see if xmlFile exists as a file in the OS.
if (File.Exists(xmlFile))
{
//try XDocument.load()
try
{
doc = XDocument.Load(xmlFile);
}
catch (Exception)
{
//if the load did not succeed then return null
return null;
}
}
else
{
//if it is not a file then try parsing the string.
try
{
doc = XDocument.Parse(xmlFile);
}
catch (Exception)
{
//if the parse failed (i.e. the string is not an xml format) then make doc = null
return null;
}
}
//return doc
return doc;
}