Я хочу вывести свое свойство InnerXml для отображения на веб-странице. Я хотел бы видеть отступы различных тегов. Есть простой способ сделать это?Есть ли быстрый способ форматирования XmlDocument для отображения на C#?
ответ
Вот небольшой класс, который я собрал некоторое время назад, чтобы сделать именно это.
Предполагается, что вы работаете с XML в строковом формате.
public static class FormatXML
{
public static string FormatXMLString(string sUnformattedXML)
{
XmlDocument xd = new XmlDocument();
xd.LoadXml(sUnformattedXML);
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
XmlTextWriter xtw = null;
try
{
xtw = new XmlTextWriter(sw);
xtw.Formatting = Formatting.Indented;
xd.WriteTo(xtw);
}
finally
{
if(xtw!=null)
xtw.Close();
}
return sb.ToString();
}
}
Это еще проще, если добавить его в качестве метода расширения :) – Urda
Я люблю тебя !!!!!!!!!!!!!! – ChandlerPelhams
Spot on, спасибо за код :) –
Вы должны быть в состоянии сделать это с помощью codeformatters. Вы должны сначала html закодировать xml на странице.
Google имеет a nice prettifyer, который способен визуализировать XML, а также несколько языков программирования.
В принципе, поставить XML в предварительно тэгом как это:
<pre class="prettyprint">
<link href="prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="prettify.js"></script>
</pre>
Используйте XML Web Server Control для отображения содержимого XML-документа на веб-странице.
EDIT: вы должны передать весь XmlDocument в свойство Document элемента управления веб-сервером XML, чтобы отобразить его. Вам не нужно использовать свойство InnerXml.
Если идентификация является вашим единственным кокаром, и если вы можете позволить себе запустить процесс xternall, вы можете обработать файл xml с помощью консольного инструмента HTML Tidy (~ 100K).
Код:
tidy --input-xml y --output-xhtml y --indent "1" $(FilePath)
Затем вы можете отобразить idented строку на веб-странице, как только вы избавитесь от специальных символов.
Было бы также легко создать рекурсивную функцию, которая делает такой вывод - просто перебирать узлы, начиная с корня, и вводить следующий шаг рекурсии для дочернего узла, передавая идентификацию в качестве параметра для каждого нового вызова рекурсии.
Ознакомьтесь с бесплатным Actipro CodeHighlighter для ASP.NET - он может отображать XML и другие форматы.
Или вас больше интересует фактическое форматирование вашего XML? Затем взгляните на XmlTextWriter - вы можете указать такие вещи, как Format (indenting or not) и уровень отступа, а затем выписать свой XML, например. MemoryStream и прочитайте его обратно оттуда в строку для отображения.
Марк
Используйте XmlTextWriter с XmlWriterSettings, установленными таким образом, что отступы включен. Вы можете использовать StringWriter как «временное хранилище», если вы хотите записать полученную строку на экран.
- 1. Быстрый способ SqlXml для XmlDocument в C# для функции SQLCLR?
- 2. Есть ли более быстрый способ?
- 3. Есть ли более быстрый способ?
- 4. Есть ли способ форматирования строки в Flex
- 5. Есть ли автоматический код форматирования для C#?
- 6. Самый быстрый способ форматирования номера телефона на C#?
- 7. Самый быстрый/лучший способ форматирования строки
- 8. Длительность форматирования для отображения
- 9. Есть ли более быстрый способ работы GridsearchCV
- 10. Есть ли способ форматирования файла .vm скорости.
- 11. Чтение больших строк в C++ - есть ли безопасный быстрый способ?
- 12. Есть ли способ сохранить XmlDocument * без * отступов и строк?
- 13. Есть ли более быстрый способ сделать это?
- 14. Самый быстрый способ отображения данных
- 15. C# - Есть ли быстрый способ Подчеркивая Regex Матчи (RichTextBox)
- 16. Есть ли способ предотвратить расширение числовых объектов в XmlDocument?
- 17. Есть ли самый быстрый способ обновления edmx?
- 18. Есть ли более быстрый способ загрузки mysqldumps?
- 19. Есть ли более быстрый способ получить System.Environment.UserName?
- 20. Есть ли более быстрый способ рисования текста?
- 21. Есть ли быстрый способ масштабирования изображения?
- 22. Есть ли короткая рука для форматирования строки?
- 23. Есть ли более быстрый способ очистки консоли?
- 24. Swift: быстрый/простой способ форматирования NSDate()
- 25. Есть ли быстрый способ рисования символов на экране?
- 26. WPF: быстрый способ применения форматирования к RichTextBox
- 27. Есть ли быстрый способ обнуления структуры в C#?
- 28. Есть ли быстрый способ синхронизации в Java?
- 29. Есть ли быстрый способ создать набор?
- 30. Mod Rewrite - есть ли более быстрый способ?
Как раз проходит, и мы имеем LINQ к XML теперь вы можете использовать 'класс XDocument' из' System.Xml.Linq' имен, чтобы распечатать ваш XML с отступом: 'XDocument.Parse (doc.InnerXml) '. – jwaliszko