Мне нужно динамически создавать 'n' количество XElements внутри XDocument с использованием цикла и в зависимости от количества файлов, найденных в каталоге.Динамическое создание XElements внутри XDocument с использованием цикла
Мой WIP код голые кости проект, возможно, немного времени, чтобы вставить здесь, так что я добавил его в pastie.org - here
Вы увидите, что между строк 73-91, что у меня есть цикл Еогеасп, который ищет в каталог & - это подкаталоги и определяет пути всех файлов, содержащихся внутри. Я знаю, что это на его собственной работе, как я использовал:
int x = filePaths.Length;
и выход x
соответствует количеству файлов в данной директории.
Основная часть кода работает и создает HTML-файл, я требую, но я также нужно, чтобы динамически создавать «п» XElements между линией 215, где я поставил:
/// **** NEED TO INSERT LOOP HERE TO DYNAMICALLY CREATE NUMBER OF ELEMENTS DEPENDING ON NUMBER OF FILES IN DIRECTORY ****
просто перед открытием тега <TR>
& строки 280 сразу после закрытия тега <TR>
, поэтому каждый файл, найденный в указанном каталоге, будет иметь свою собственную строку <TABLE>
.
Я потерял счет количества способов, с помощью которых я пытался достичь этого, перемещая петлю вокруг кода, но продолжайте ударять по кирпичной стене с массами ошибок.
Первоначально я думал, что это будет так просто, как просто поместить петлю в коде в строке 215, но делать это вызывает многочисленные ошибки, такие как отсутствие:
- ;
- }
и т.д ...
Теперь я полностью застрял.
Я пытаюсь подражать в C# пакетный файл, я сделал некоторое время назад, что использует WMIC, который работает отлично, но ограничен & Я хотел бы добавить еще несколько функций, это где C# входит.
Пакетный файл использует цикл, как я пытаюсь здесь, без каких-либо проблем.
Вот цикл из пакетного файла WMIC:
(FOR /f "delims=" %%a IN ('dir /b /a-d /s /n "C:\Users\1CM69\Pics & Vids\Archives\Family\2002"') DO (
FOR /f "tokens=1-3*" %%x IN ('dir /a-d /tc "%%~a"^|findstr "^[0-9]"') DO (
for /f %%c in ("%%~ta") do (
ECHO ^<TR^>^<td style="border-width: 1px;padding: 10px;border-style: inset;border-color: gray;background-color: white;" align="center" valign="middle"^>^<a href="%%a" target="_new"^>^<img src="%%a" width="100px" border="0"^>^</a^>^</TD^>^<td style="border-width: 1px;padding: 10px;border-style: inset;border-color: gray;background-color: white;" align="left" valign="middle"^>^<B^>%%~nxa^</B^>^</TD^>^<td style="border-width: 1px;padding: 10px;border-style: inset;border-color: gray;background-color: white;" align="center" valign="middle"^>^<B^>%%~c^</B^>^</TD^>^<td style="border-width: 1px;padding: 10px;border-style: inset;border-color: gray;background-color: white;" align="center" valign="middle"^>^<B^>%%x^</B^>^</TD^>^</TR^> >> 2002.html))))
я нашел Create XML with XDocument with a variable number of XElements using for loop будет искать вокруг & первоначально надежд и хотя я получить его динамически создавать «п» число XElements на основе количества файлов, переменная DateTaken
показала только значение последнего файла в каталоге, поэтому у меня был <TABLE>
с 68 строками <TR>
, в случае с тестовым каталогом, который я использую, и все они содержали значения, полученные из окончательного файла что петля найдена.
Любая помощь была бы любезно оценена.
Привет ..,
Привет, изначально это казалось простой логический ответ и сделал вид работы. Он создал правильное количество строк на основе количества файлов, но опять же, только значения из последнего файла в каталоге заполняли каждую из строк в таблице. Я немного потерял здесь ... – 1cm69
Можете ли вы показать нам HTML-строку примерной таблицы, которую вы хотите создать для образца файла в переменной 'filePaths'? Я боюсь, что образец WMIC не то, что я понимаю. –
Ссылка на сокращенную версию выведенного '
Если вы используете XElements они предназначены для работы с Linq так попробовать что-то вроде этого:
источник
2015-08-21 09:52:44 Mant101
Привет, спасибо за ответ, но я точно не знаю, в какой момент в моем коде мне нужно вставить это. – 1cm69
При размещении его вокруг точки, где мне нужен новый '
Извините, новичок в Stack Overflow и забыл добавлять имя комментатора при ответе, так что: @ mant101 – 1cm69
Смежные вопросы