У меня проблема, я не могу... и не знаю, что с ней не так?
код:
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");
......