我有一个基本的xml文件,看起来像这样。
<root>
<item>
<title><p>some title</p></title>
</item>
...
</root>
我想要的是使用linq获取整个标题字符串,包括xml的html标记,并将其显示在转发器中。
我可以毫无问题地获得标题,但<p>
标签正在被删除。
如果我使用
title = item.Element("title").ToString()
,它以某种方式工作,但我也得到了所有的xml标记 - 这意味着标题不会以html显示。
我已尝试使用"<"
对"<"
进行编码,但这样做会使xml难以阅读。
除了使用CDATA和编码之外,还有什么可能的解决方案?
干杯 特里
答案 0 :(得分:1)
从title元素创建一个reader并阅读InnerXml:
static void Main(string[] args)
{
string xml = "<root><item><title><p>some title</p></title></item></root>";
XDocument xdoc = XDocument.Parse(xml);
XElement te = xdoc.Descendants("title").First();
using (XmlReader reader = te.CreateReader())
{
if (reader.Read())
title = reader.ReadInnerXml();
}
}
答案 1 :(得分:0)
有关如何获取XElement的“InnerXml”的一些想法,请参阅Best way to get InnerXml of an XElement?。
答案 2 :(得分:0)
XElement x = XElement.Parse(你的xml);
var y = x.Descendants(“title”)。Descendants();
然后迭代y以获取标题元素的内容列表。
BTW,LINQPad(http://www.linqpad.net)是一个免费的免费工具,用于试用LINQ-XML。