假设我在一个XElement对象中有以下内容
<root>Hello<child>Wold</child></root>如果我使用XElement.ToString(),这将为我提供
"<root xmnls="someschemauri">Hello<child>World</child></root>"如果我使用XElement.Value,我将得到
"Hello World"我需要拿到
"Hello <child>World</child>"执行此操作的适当函数是什么(如果有)?
发布于 2013-03-08 04:22:08
针对.NET 4的解决方案
var result = String.Join("", rootElement.Nodes()).Trim();完整代码(适用于.NET 3.5):
XElement rootElement = XElement.Parse("<root>Hello<child>Wold</child></root>");
var nodes = rootElement.Nodes().Select(n => n.ToString()).ToArray();
string result = String.Join("", nodes).Trim();
Console.WriteLine(result);
// writes "Hello<child>World</child>"无需加入所有节点即可快速解决问题:
XElement rootElement = XElement.Parse("<root>Hello<child>Wold</child></root>");
var reader = rootElement.CreateReader();
reader.MoveToContent();
string result = reader.ReadInnerXml(); 发布于 2013-03-08 03:58:27
这样做效果相当好:
//SOLUTION BY Nenad
var element = XElement.Parse("<root>Hello<child>World</child></root>");
string xml = string.Join("", element.DescendantNodes().Select(e => e.ToString()));
Debug.WriteLine(xml);最终输出:Hello<child>Wold</child>World
尝试#3
XDocument xDoc = XDocument.Parse(@"<root>Hello<child>World</child></root>");
XElement rootElement = xDoc.Root;
Debug.WriteLine(rootElement.Value + rootElement.FirstNode.ToString());发布于 2013-03-08 04:33:44
这样就可以了:
var element = XElement.Parse("<root>Hello<child>Wold</child></root>");
string xml = string.Join("", element.Nodes().Select(e => e.ToString()));对于.NET 3.5 (如果这是问题的关键):
var element = XElement.Parse("<root>Hello<child>Wold</child></root>");
string xml = string.Join("", element.Nodes().Select(e => e.ToString()).ToArray());https://stackoverflow.com/questions/15280473
复制相似问题