Есть разные способы, в зависимости от того, где вы хотите получить.
XmlDocument легче, чем XDocument, но если вы хотите минимально проверить, что строка содержит XML, то регулярное выражение, возможно, самый быстрый и легкий выбор, который вы можете сделать. Например, я реализовал Smoke Tests с SpecFlow для моего API, и я хочу проверить, является ли один из результатов в любом допустимом XML - тогда я бы использовал регулярное выражение. Но если мне нужно извлечь значения из этого XML, я бы проанализировал его с помощью XDocument, чтобы сделать это быстрее и с меньшим количеством кода. Или я бы использовал XmlDocument, если мне нужно работать с большим XML (а иногда я работаю с XML, которые составляют около 1 млн строк, даже больше); тогда я мог даже читать это построчно. Зачем? Попробуйте открыть более 800 МБ частных байтов в Visual Studio; даже на производстве у вас не должно быть объектов размером более 2 ГБ. Вы можете с тверком, но вы не должны. Если вам придется анализировать документ, который содержит много строк, то эти документы, вероятно, будут CSV.
Я написал этот комментарий, потому что вижу множество примеров с XDocument. XDocument не подходит для больших документов или когда вы хотите только проверить, является ли содержимое допустимым в XML. Если вы хотите проверить, имеет ли смысл сам XML, вам нужна схема.
Я также отказался от предложенного ответа, потому что считаю, что ему нужна вышеуказанная информация внутри себя. Представьте, что мне нужно проверить, является ли 200M XML 10 раз в час действительным XML. XDocument будет тратить кучу ресурсов.
prasanna venkatesh также утверждает, что вы можете попробовать заполнить строку в наборе данных, это также будет указывать на действительный XML.