加载多个 XDocuments,并处理其文档

本文关键字:处理 文档 XDocuments 加载 | 更新日期: 2023-09-27 18:30:39

我写了几行代码,但仍然无法克服这一点:

我需要从网络库中加载许多 xml 文档。我不知道有多少文档,所以我想知道加载时应该使用哪个循环:

XDocument doc = XDocument.Load("http://" + i);

其中 -i 是标识符号。我尝试加载直到我得到没有有意义内容的文档(认为这是结束,其余的都是空的),但问题是库中间有几个 Xdoc 是空的。

包含内容的 XML 如下所示

<?xml version="1.0" encoding="utf-8"?>
<OP xmlns="" xmlns:xsi="" xsi:schemaLocation="">
<request verb="GR" identifier="53" metadataPrefix="p"></request>
<GR>
<header>
<identifier>53,number of doc...used for counting</identifier>
</header>
<metadata>
<P xmlns="" xsi:schemaLocation="">
<TITLE>title</TITLE>
<CERTIFICATE NAME="different names">
</CERTIFICATE>
<YEAR>
<DATE>2012-10-18T00:00:00Z</DATE>
</YEAR>
<MINIATURE>
<COPY>
<CNAME>Copy name<CNAME>
<FORMAT>obj/max/dxf/3ds/...</FORMAT>
</COPY>
</MINIATURE>
</metadata>
</GR>
</OP>

不带内容的 XML

<?xml version="1.0" encoding="utf-8"?>
<OP xmlns="" xmlns:xsi="" xsi:schemaLocation="">
<request verb="GR" identifier="53" metadataPrefix="p"></request>

此外,我需要做一些计数,例如:

Tot.no. of doc, 
No. of docs per certificate <CERTIFICATE>
No. of docs for each year <YEAR><DATE>
No of docs for each format <MINIATURE><COPY><FORMAT>

我的输出应如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<Statistic>
<DocSum>21220</DocSum>
<Certificates>
<Certificate id=”certificateName”>17098</Certificate>
…
<Certificates>
<Years>
<Year year=”2014”>23</Year>
…
</Years>
<Miniature>
<Format post=”obj”>11723</Format>
…
</Miniature>
</Statistic>

如果你能给我一些帮助,提示或提示如何处理它。

加载多个 XDocuments,并处理其文档

通过smink对以下线程发布的答案应该会让你走上正确的道路。

C# HttpWebRequest 命令获取目录列表

在不知道确切有多少文件或其文件名的情况下获取 Web 目录文件列表的最简单方法之一是解析目录的 html 并提取标签。

然后,您可以循环访问这些标记,并按所需的扩展名筛选出文件。如有必要,我可以提供一个更深入的示例。