2011-04-10 72 views
6

如何將xml平鋪到c#代碼中的一行?如何將xml平鋪到c#代碼中的一行?

前:

<CATALOG> 
<CD> 
    <TITLE>Empire Burlesque</TITLE> 
    <ARTIST>Bob Dylan</ARTIST> 
    <COUNTRY>USA</COUNTRY> 
    <COMPANY>Columbia</COMPANY> 
    <PRICE>10.90</PRICE> 
    <YEAR>1985</YEAR> 
</CD> 
</CATALOG> 

後:

<CATALOG><CD><TITLE>Empire Burlesque</TITLE><ARTIST>Bob Dylan</ARTIST>COUNTRY>USA</COUNTRY>.... 
+0

我們需要更多的細節:這個XML來自哪裏?你想要這個「平坦」的結果存儲在一個文件中?變量? – 2011-04-10 09:06:32

+0

你在C#字符串中有這個xml,想要改變它的值嗎?或者,您已經在Visual Studio中編寫了這種多行xml,並希望將其作爲一行? – 2011-04-10 09:07:12

回答

11

假設你能夠使用LINQ到XML,以及XML目前位於一個文件中:

XDocument document = XDocument.Load("test.xml"); 
document.Save("test2.xml", SaveOptions.DisableFormatting); 
5

如果你有一個字符串的XML:

xml.Replace("\n", "").Replace("\r", "") 
+3

這不會擺脫縮進空間。 – reggaeguitar 2014-01-29 19:03:03

3

如果你不能使用LINQ到XML,您可以:

XmlDocument xmlDoc = new XmlDocument() 
xmlDoc.LoadXml("Xml as string"); or xmlDoc.Load(filepath) 
xmlDoc.InnerXml -- this should return one liner 
0

我知道,這是老問題,但它幫助我找到XDocument.ToString()

XDocument doc = XDocument.Load("file.xml"); 
// Flat one line XML 
string s = doc.ToString(SaveOptions.DisableFormatting); 

Check SaveOptions documentaion