[英]XDocument Descendants, using elements value in c#
我有一个问题,我听不到...而且不知道这是怎么回事?
编码:
static void Main(string[] args)
{
XDocument doc = XDocument.Load(args[0] + "/?verb=GetRecord&metadataPrefix=p3dm&identifier=" + 1);
doc.Save("doc.xml");
var node = doc.Descendants("identifier");
foreach (var n in node)
{
doc.Save("file_" + n.Value + ".xml");
}
}
doc.xml看起来像:
<?xml version="1.0" encoding="utf-8"?>
<OAI-PMH xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
<responseDate>...</responseDate>
<request verb="GetRecord" identifier="1"</request>
<GetRecord>
<record>
<header>
<identifier>1</identifier>
<datestamp>...</datestamp>
</header>
<metadata>
<P3DM xmlns="..." xsi:schemaLocation="...">
<MODELINFOID>1</MODELINFOID>
<TITLE>Roth</TITLE>
....
正如我们在doc.xml中看到的那样,有一个元素的值为1,并使用Descendants和foreach ...我想保存相同的文档,但是要使用标记值来命名我的输出文件。 我究竟做错了什么。 此代码仅用于测试。
您的XML具有默认名称空间。 您可以使用XNamespace
加上元素的本地名称来寻址命名空间中的元素:
......
//assume that the default namespace declared as <OAI-PMH xmlns="dummy.uri" ....>
XNamespace d = "dummy.uri";
var node = doc.Descendants(d+"identifier");
......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.