C#将任何内容翻到下一个标签

时间:2016-06-07 05:56:12

标签: c# xml skip

我有一个xml格式的日志文件,如

<log> // skip this node
  <?xml version="1.0" encoding="UTF-8"?>
  <qbean logger="main-logger">
  </qbean>
</log>
<log> // go to this node
</log>

现在ReadToNextSibling(“log”)抛出异常,我需要跳过第一个“log”标记的内容并移动到下一个“log”标记而不抛出异常。 有办法吗?

1 个答案:

答案 0 :(得分:0)

<强>提示:

  1. 您的XML无效,因为<?xml version="1.0" encoding="UTF-8"?>必须位于根元素之前。您可以搜索并删除它,如果这可以解决您的问题。您可以使用yourXml.Repalce("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "")
  2. 您必须为XML创建一个根元素才能对解析有效。
  3. 然后,您可以使用XmlDocument类来解析您拥有的XML数据并跳过您想要的任何内容。你需要这样的东西:

    var document = new XmlDocument();
    
    document.LoadXml(yourXml);
    
    document.DocumentElement.ChildNodes[1]