大家好我想检查我的xml文件是否为空.我正在尝试将一个xml数据更新为另一个为此我使用以下代码.现在请告诉我如何检查我的xml文件是否有数据这是我用来更新我的xml文件的代码
protected void CheckUpdates()
{
StringReader strReader = new StringReader("..\\xml\\Updatelist.xml");
XmlReader reader = XmlReader.Create(strReader);
try
{
while (reader.Read())
{
var originalXmlDoc = XDocument.Load("..\\xml\\list.xml"); var newXmlDoc = XDocument.Load("..\\xml\\Updatelist.xml");
foreach (var newElement in newXmlDoc.Element("blocker").Elements("lst"))
{
newElement.Value.Trim();
if (!originalXmlDoc.Element("blocker").Elements("lst")
.Any(oldElement => oldElement.Value.Trim().Equals(
newElement.Value.Trim(),
StringComparison.InvariantCultureIgnoreCase)))
{
originalXmlDoc.Element("blocker").Add(new XElement("lst", newElement.Value));
}
}
originalXmlDoc.Save("..\\xml\\list.xml", SaveOptions.None);
XmlDocument doc = new XmlDocument();
doc.Load("..\\xml\\Updatelist.xml");
doc.DocumentElement.RemoveAll();
doc.Save("..\\xml\\Updatelist.xml");
}
}
catch (XmlException ex)
{
//Catch xml exception
//in your case: root element is missing
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误
根级别的数据无效.第1行,第1位.
请告诉我如何检查我Updatelist.xml是否空了?
现在我收到了这个错误
有两种方法可以做到.
第一种是读取文件并检查其结构,以查看其中是否有任何子项.请记住,属性ChildNodes仅返回XML DOM 特定级别的子级.
XmlDocument xDoc = new XmlDocument();
if (xDoc.ChildNodes.Count == 0) {
// It is empty
}else if (xDoc.ChildNodes.Count == 1) {
// There is only one child, probably the declaration node at the beginning
}else if (xDoc.ChildNodes.Count > 1) {
// There are more children on the **root level** of the DOM
}
Run Code Online (Sandbox Code Playgroud)
第二种方法XMLException是在加载文档时捕获相应的抛出.
try
{
XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
}
catch (XmlException exc)
{
//invalid file
}
Run Code Online (Sandbox Code Playgroud)
希望我帮忙!
| 归档时间: |
|
| 查看次数: |
18330 次 |
| 最近记录: |