2014-01-21 6 views
0

У меня есть поток ввода, который создается при загрузке файла (XML-тип). Мне нужны данные XML позади кода. Я имею данные XML в строку с помощьюИзвлечь XML-данные из строки

StreamReader stream = new StreamReader(Request.InputStream); 
string x = stream.ReadToEnd(); 

Он также содержит следующие данные в начале строки

------WebKitFormBoundary8na5dBbHc4ydfxVU 
Content-Disposition: form-data; name="MyFile"; filename="Test 123.vfc" 
Content-Type: application/octet-stream 

в конце строки

------WebKitFormBoundary8na5dBbHc4ydfxVU-- 

Этот данные мне не нужны. Пожалуйста, помогите мне в получении правильной строки XML.

+0

Есть ли причина, по которой вы не можете использовать коллекцию 'Request.Files'? –

+0

@EvanTrimboli Я отправляю файл через jQuery Upload Plugin. –

+0

Правильно ли отформатирован XML-файл, можете ли вы опубликовать фактические данные, с которыми вы пытаетесь работать? Как то, что х –

ответ

0

Сначала вы можете удалить первые три строки и последнюю строку из своей строки.

int n = 3; 
string[] lines = str.Split(Environment.NewLine.ToCharArray()).Skip(n).ToArray(); 
string output = string.Join(Environment.NewLine, lines); 
output = output.Remove(str.LastIndexOf(Environment.NewLine)); 

В вашей строке XML, если у вас нет корневого узла, добавьте его, как показано ниже.

string xmlTxt = "<ROOT>" + xmlString + "</ROOT>"; 

Если у вас есть корневой узел, пропустите выше. Для строки XML в формате XML вы можете использовать код ниже

XmlDocument xmlDocument = new XmlDocument(); 
    xmlDocument.InnerXml = xmlTxt; 
Смежные вопросы