如何在x#代码中将xml平移到一行?
在:
<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 :(得分:10)
假设您能够使用LINQ to XML,并且XML当前位于文件中:
XDocument document = XDocument.Load("test.xml");
document.Save("test2.xml", SaveOptions.DisableFormatting);
答案 1 :(得分:4)
如果您在字符串中包含XML:
xml.Replace("\n", "").Replace("\r", "")
答案 2 :(得分:3)
如果您无法使用LINQ to XML,您可以:
XmlDocument xmlDoc = new XmlDocument()
xmlDoc.LoadXml("Xml as string"); or xmlDoc.Load(filepath)
xmlDoc.InnerXml -- this should return one liner
答案 3 :(得分:0)
我知道,这是一个老问题,但它帮助我找到了XDocument.ToString()
XDocument doc = XDocument.Load("file.xml");
// Flat one line XML
string s = doc.ToString(SaveOptions.DisableFormatting);
答案 4 :(得分:0)
取决于您正在使用什么以及您需要什么输出... 如果读取和写入文件,John Skeet 的答案有效。 如果您想要没有 xml 声明的 xml,Aleksej Vasinov 的回答有效。
如果你只是想要一个字符串中的 xml,但想要 xml 的整个结构,包括声明,即..
<?xml version "1.0" encoding="utf-16"?> <-- This is the declaration ->
<TheRestOfTheXml />
...使用 StringWriter...
XDocument doc = GetTheXml(); // op's xml
var wr = new StringWriter();
doc.Save(wr, SaveOptions.DisableFormatting);
var s = wr.GetStringBuilder().ToString();