Нужно разобрать строку xml - PullRequest
       15

Нужно разобрать строку xml

4 голосов
/ 27 сентября 2010

Мне нужно проанализировать строку xml (.NET, C #), которая, к сожалению, не очень хорошо сформирована. Поток xml, который я получаю, -

<fOpen>true</fOpen>
<ixBugParent>0</ixBugParent>
<sLatestTextSummary></sLatestTextSummary>
<sProject>Vantive</sProject>
<ixArea>9</ixArea>

Я пытался использоватьxml reader, но он вылетает из-за того, что он думает, и по праву, есть 2 элемента узла, когда бы он ни пытался проанализировать

Могу ли я что-нибудь сделать с этим?Я не могу изменить XML, потому что у меня нет контроля над кодом, который отправляет XML обратно ...

Любая помощь, будет принята с благодарностью.

Спасибо и всего наилучшего

Гаган Джанджуа

Ответы [ 2 ]

7 голосов
/ 27 сентября 2010

Я думаю, вы можете использовать XmlParserContext в одной из перегрузок XmlTextReader, чтобы указать, что тип узла - XmlNodeType.Element, аналогично этому примеру из MSDN (http://msdn.microsoft.com/en-us/library/cakk7ha0.aspx):

XmlTextReader tr = new XmlTextReader("<element1> abc </element1> 
  <element2> qrt </element2>
  <?pi asldfjsd ?>
  <!-- comment -->", XmlNodeType.Element, null);

while(tr.Read()) {
    Console.WriteLine("NodeType: {0} NodeName: {1}", tr.NodeType, tr.Name);
    }
0 голосов
/ 27 сентября 2010

То, что вы получаете, - это правильно сформированный XML фрагмент , но, как вы указали, не правильно сформированный XML-документ. Можете ли вы

  • обернуть элемент верхнего уровня вокруг возвращаемых элементов? или
  • ссылаться на возвращенный фрагмент XML как на внешнюю сущность из документа XML оболочки и передавать документ оболочки в устройство чтения XML?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...