2016-06-22 2 views
-2

Мой XML выглядит следующим образомКак разобрать XML, где значения атрибутов не в кавычках

<DIV id=MyID01 title="" style="HEIGHT: 100px; WIDTH: 200px;"> 
<OBJECT onmousedown=BodyMouseDown() id="Viewer" classid=CLSID:E9DAF39B-9CFF-451A-B777-856184C7D516></OBJECT></DIV> 

Поскольку MyID01 не в кавычках, я получаю сообщение об ошибке при загрузке его в XML. То же самое с атрибутами onmousedoun и classid. Как добавить программные значения котировок в значения атрибутов? Я думал о линиях регулярных выражений, но хотел знать, есть ли у меня другой способ.

Благодаря

+5

Это недействительный 'Xml'. –

+2

Это html. Попробуйте использовать любой синтаксический анализатор HTML. –

+1

Есть ли только эти три атрибута (id, onmousedown и classid), которые имеют эту проблему? –

ответ

1

Я хотел бы использовать HTML парсер, как HtmlAgilityPack преобразовать этот HTML цитируемым синтаксис атрибут-значение:

Install-Package HtmlAgilityPack 

добавить HtmlAgilityPack вам проект, а затем вы можете сделать что-то как в этом примере:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using HtmlAgilityPack; 


namespace ConsoleApplication4 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var html = new HtmlDocument(); 
      html.Load("C:\\test\\test.html"); 
      html.OptionOutputAsXml = true; 
      System.IO.StringWriter sw = new System.IO.StringWriter(); 
      System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw); 
      html.Save("C:\\test\\test.xml"); 
     } 
    } 
} 

и это результат, который я получаю в файле test.xml:

<?xml version="1.0" encoding="iso-8859-1"?> 
<div id="MyID01" title="" style="HEIGHT: 100px; WIDTH: 200px;"> 
    <object onmousedown="BodyMouseDown()" id="Viewer" classid="CLSID:E9DAF39B-9CFF-451A-B777-856184C7D516"></object> 
</div> 

Обратите внимание, что HtmlAgilityPack функции экономии дает много различных способов получить XML от парсера.

+0

Это отлично работает для меня. Спасибо за ваше время и усилия @iiliev – Suraj

Смежные вопросы