2014-01-21 150 views
0

我有一個輸入流,當我上傳一個文件(XML類型)時生成。我需要在代碼背後的XML數據。我用從字符串中提取XML數據

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

其在字符串中的XML數據也包含在字符串

------WebKitFormBoundary8na5dBbHc4ydfxVU-- 

這結束在字符串

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

開始以下數據我不需要數據。請幫助我獲得正確的XML字符串。

+0

是否有任何理由不能使用Request.Files集合? –

+0

@EvanTrimboli我通過jQuery上傳插件發送文件。 –

+0

XML格式是否正確,您能發佈您嘗試使用的實際數據嗎?像什麼是x –

回答

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字符串,您可以使用以下代碼

XmlDocument xmlDocument = new XmlDocument(); 
    xmlDocument.InnerXml = xmlTxt;