2014-12-03 3 views
0

Есть ли способ определить в VB.NET (или C#), есть ли XML-файл элемент DOCTYPE или нет?Определить, содержит ли XML DOCTYPE

Спасибо!

+0

DOCTYPE предназначен для HTML? – Sjips

+0

Нет, я говорю о XML. – user2726536

+0

Почему вы не показываете структуру своего 'XML', это может ограничить любую путаницу и предположения. – MethodMan

ответ

3

Из документации MSDN XmlDocument.DocumentType Property:

Возвращает узел, содержащий Декларацию DOCTYPE

образца из указанной выше ссылке:

XmlDocument doc = new XmlDocument(); 
doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" + 
      "<book genre='novel' ISBN='1-861001-57-5'>" + 
      "<title>Pride And Prejudice</title>" + 
      "<style>&h;</style>" + 
      "</book>"); 

// Display the DocumentType. 
Console.WriteLine(doc.DocumentType.OuterXml); 
+0

Спасибо, но я не могу записать жесткий код, просто нужно искать! DOCTYPE, за которым следует кто знает. – user2726536

+0

@ user2726536 - Не знаете, что означает ваш комментарий - 'DocumentType' возвращает вам содержимое узла'

+0

В примере, приведенном в функции LoadXML, есть целая куча жестко закодированных материалов. Непонятно, почему вы не могли этого увидеть. – user2726536

0

Вы можете использовать XPath.

 XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("<root>....</root>"); // Or other way to get your XML 
     var node = doc.SelectSingleNode("//DOCTYPE"); 
     if (node != null) 
     { 
      ... // node.InnerText contains the element text 
     } 
Смежные вопросы