C# 跳过任何内容到下一个标签

C# Skip anything to next tag

我有一个 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. 您的 XML 无效,因为 <?xml version="1.0" encoding="UTF-8"?> 必须位于根元素之前。如果可以解决您的问题,您可以搜索并删除它。您可以使用 yourXml.Repalce("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "")
  2. 您必须为您的 XML 创建根元素才能有效解析。

然后,您可以使用 XmlDocument class 来解析您拥有的 XML 数据并跳过任何您想要的内容。你需要这样的东西:

var document = new XmlDocument();

document.LoadXml(yourXml);

document.DocumentElement.ChildNodes[1]