gpt4 book ai didi

C# XML 解析 - 搜索特定元素

转载 作者:行者123 更新时间:2023-11-30 21:06:35 28 4
gpt4 key购买 nike

我在 C# .net 4.0 中使用 XMLReader 来搜索一小段 XML。我想在 XML 中查找特定元素,我正在使用 XMLReader.ReadToFollowing("name") 方法来查找元素。我不知道元素在 XML 文档中的顺序;它们的顺序不同或完全缺失。顺序对我来说无关紧要,但如果缺少该元素,我将抛出异常。

XMLReader 是只向前的,所以如果我要查找的第一个元素是 XML 文档中的最后一个值,额外的读取将失败。

我正在考虑为每次搜索创建一个新的 XMLReader。我只有一小部分元素要查找,而且 XML 也不大,所以我认为不会有太多开销,但我可能是错的。

当您不知道元素的顺序时,是否有更好的库可用于搜索 XML?或者 XML 中缺少顺序是否违反了 XML 规范?

具体来说,假设我有一些简单的 XML。一个头和 10 个 child 。

<sometag>
<element1>data</element1>
<element2>data</element2>
.
.
.
<element10>data</element10>
</sometag>

打开 5 个 XMLReader 来查找那些元素会不会效率低下?我也可以使用一个阅读器逐步浏览每个元素,但这样我就需要跟踪找到了哪些元素。

最佳答案

您可以使用 XDocument 而不是 XMLReader (linq2xml),快速简单地完成(通过 Element 方法):

var doc = XDocument.Load(xmlFilePath);
var element1 = doc.Element(searchItemName);
if (element1 == null) throw ...
...
return ....;

您可以多次调用它而无需重新加载 xml 文件。

关于C# XML 解析 - 搜索特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107826/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com