Рейтинг:
12
Maciej Los
Ты на правильном пути:
XDocument xdoc = XDocument.Load(@"D:\Sushil\Information.xml");
var paths = xdoc.Descendants("path").Select(x=>x.Value).ToList();
for (var p in paths)
{
Console.WriteLine("{0}", p);
}
Member 11859517
Спасибо Мацей,
Я получил путь, теперь я проверяю, существует ли каталог или нет, если он не существует, то сразу же я должен удалить этот узел из xml-файла, как мы можем это сделать?
Member 11859517
Спасибо Мацей Лос,
Я не могу удалить из xml - файла, вы дали решение для получения пути
var paths = xdoc.Потомки("путь").Выберите(x=>x.Value).Список();
for (var p в путях)
{
если(!Каталог.Существует(п)
{
удалить из xml-файла????? как я могу это сделать,
}
}
Member 11859517
Получаю эту ошибку,
Ошибка 104 тип 'char' не может быть использован в качестве параметра типа 'T' в универсальном типе или методе
Системы'.В формате XML.В LINQ.Расширения.Удалить<t>(System.Коллекции.Общий.IEnumerable<t>)'.
Нет никакого боксерского преобразования из 'char' в 'System.Xml.Linq.XNode'.
Maciej Los
Потому что вам нужно вернуть XNode, а не текст. Изменить:
var paths = xdoc.Descendants("path").Select(x=>x.Value).ToList();
к:
var paths = xdoc.Descendants("path").Select(x=>x).ToList();
Member 11859517
Это уберет откуда? потому что он не удаляется из xml-файла. мне нужно, когда path.value не существует, удалить из файла .xml. как я могу обновить xml-файл так, чтобы он содержал только доступные элементы?
спасибо.
Maciej Los
Омг! Вы пытаетесь решить свою проблему самостоятельно или вы действительно ожидаете, что я решу все ваши проблемы?
XDocument xdoc = XDocument.Load(@"D:\Sushil\Information.xml");
var paths = xdoc.Descendants("path").ToList();
for(int i=0;i<paths.Count;i++)
{
if(!Directory.Exists(paths[i].Value)) paths[i].Remove();
}
Member 11859517
Спасибо тебе, Мацей Лос.
<root>
<папка>
<путь>C:\Users\bsushil\Documents\Sharpdesk рабочий стол\Тинки
<имя>Tinkiiiii
<папка>
<путь>C:\Users\bsushil\Documents\Sharpdesk рабочий стол\Тинки\Новая папка
<имя>новой папки
<папка>
<путь>C:\Users\bsushil\Documents\Sharpdesk рабочий стол\Тинки\Новая папка (1)
<name>Новая папка (1)
Как я могу извлечь это в словарь<string, string>.
Maciej Los
Вы должны опубликовать его как новый вопрос...
Дай мне знать, когда закончишь.
[РЕДАКТИРОВАТЬ]
Кстати: Ваш xml не очень хорошо сформирован. Я не вижу конечной метки для имени.
Member 11859517
Окончание тега есть, но когда я вставил его, он не пришел, кстати, я получил ответ,
Спасибо Вам за вашу большую помощь.
Maciej Los
Всегда пожалуйста.
Member 11859517
вот мое решение.
foreach(XElement xe в xdoc.Потомки("Папка"))
{
dictionary.Add(xe.Element("имя").Value),xe.Element("путь").Ценность);
}