加载多个XDocuments,并使用其文档

时间:2014-11-17 23:53:25

标签: c# xml

我写了几行代码,但仍然无法解决这个问题:

我需要从网络库加载许多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>

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

1 个答案:

答案 0 :(得分:0)

smink向以下帖子发布的答案应该会让您走上正确的道路。

C# HttpWebRequest command to get directory listing

获取网络目录文件列表的最简单方法之一是通过解析目录的html并拉出标记,而不知道究竟有多少或它们的文件名。

然后,您可以遍历这些标记,并通过所需的扩展名对文件进行过滤。如有必要,我可以提供更深入的示例。