繁体   English   中英

XDocument后代,在c#中使用elements值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM