Возьмите XML-файл и превратитесь в длинную строку для кодирования c # - PullRequest
7 голосов
/ 03 августа 2011

Есть ли какая-нибудь хитрость или утилита, которая может взять файл XML и превратить файл в длинную строку для использования внутри кода c #?Я не хочу вручную копировать и вставлять каждую строку в XML-файл.Я хочу, чтобы каждая строка в файле была строкой в ​​моем коде на c #, а затем в конце строки был добавлен знак «+».

Ответы [ 5 ]

8 голосов
/ 03 августа 2011

Это не вопрос программирования, но вот что вы ищете: http://inedo.com/downloads/smartpaster

6 голосов
/ 03 августа 2011

Используйте свой редактор

Вы можете вставить XML в новый файл в Visual Studio и использовать поиск и замену регулярных выражений для исправления документа.

  • Кавычки и другие вызывающие проблемы символы
  • Добавьте " в начало и конец строки и + в конец строки.

Тогда вам просто нужно вернуться назад и добавить имя переменной в начале, точку с запятой в конце и вставить ее в документ с исходным кодом.

Оттуда вы можете при желании переформатировать исходный кодзакодируйте документ (чтобы сделать красивый отступ) через Edit -> Advanced -> Format Document.

Другой вариант здесь - использовать дословные строковые литералы, добавляя @ перед первой кавычкой.После этого будут поддерживаться символы новой строки, и вы можете экранировать кавычки с помощью "" вместо \".

Переосмыслите вашу проблему

XML-файлы, хранящиеся в строкахих несколько сложно редактировать, и они лишены части смысла XML - быть редактируемым человеком.Чтобы справиться с этим, вы можете рассмотреть возможность добавления XML в ваш проект

  • . Вы можете добавить его в свой проект как контент и установить свойства файла, чтобы скопировать его в каталог сборки.Затем используйте соответствующие XmlDocument методы загрузки из файла или просто File.ReadAllText.

Преимущество (и потенциально недостаток) в том, что вы можете редактировать файл после компиляции.Недостатком является то, что вам необходимо развернуть файл XML вместе со своей сборкой.

  • Вы можете добавить XML в свой проект в качестве встроенного ресурса.Затем вы можете использовать Assembly.GetManifestResourceStream для извлечения данных из файла.

Недостатком (и потенциальным преимуществом) является то, что вы не можете редактировать файл после компиляции.Преимущество заключается в том, что вам не нужно развертывать файл Xml вместе со своей сборкой.

Благодаря этому разработчику гораздо легче редактировать файл, чем если бы XML был втиснут в строкубуквальный.

3 голосов
/ 03 августа 2011

Наличие большого файла, встроенного в ваш код C # в виде строкового литерала, - очень плохая идея.Особенно плохая идея объединять отдельные строки с оператором + , потому что строки неизменяемы, и вы будете создавать миллионы строковых объектов, которые мгновенно выбрасываются Крис указывает, что компилятор выполнит буквальную конкатенациюво время компиляции.

Вы можете просто прочитать строку XML в виде строки с одной строкой:

string my_string = File.ReadAllText("xmlfile.xml");

Если вы пытаетесь встроить файл данных в исполняемый файл вашего проекта, тоВы можете сделать это с помощью ресурсов проекта.

0 голосов
/ 03 августа 2011
string fileContent = File.ReadAllText(pathToFile))
                         .Replace(Environment.NewLine, "+");
0 голосов
/ 03 августа 2011

Не могли бы вы просто отправить путь XML в File.ReadAllText (path)?

string xmlContent = System.IO.File.ReadAllText(pathToXML);

То же самое можно сделать, чтобы получить массив строк ...

string[] xmlContent = System.IO.File.ReadAllLines(pathToXML);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...