我有一个完整的XML文档,我使用LINQ to XML成功导航。我有一个包含HTML的子节点,我希望将子节点的全文作为字符串。
...
<p>
this is sample text in <italic>italic</italic> and in <bold>bold</bold>.
</p>
...
var text = node.Element("p").Value
返回this is sample text in italic and in bold.
var text = node.Element("p").ToString()
返回<p>this is sample text in <italic>italic</italic> and in <bold>bold</bold>.</p>
我真正想要的是this is sample text in <italic>italic</italic> and in <bold>bold</bold>.
什么方法会将内部文本与内部标记一起作为字符串返回?我不想要外<p>
标记。
答案 0 :(得分:1)
var reader = node.Element("p").CreateReader();
reader.MoveToContent();
var inerXml = reader.ReadInnerXml();
OR
var inerXml = string.Concat(node.Element("p").Nodes().Select(x => x.ToString()).ToArray());
答案 1 :(得分:1)
您可以直接使用innerXml
属性将p
标记的内容作为xml。
namespace XML_Reader
{
class Program
{
static void Main(string[] args)
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load("test.xml");
XmlNode elem = xdoc.DocumentElement.FirstChild;
Console.WriteLine(elem.InnerXml);
}
}
}
<强> XML: - 强>
<element>
<p>
this is sample text in <italic>italic</italic> and in <bold>bold</bold>.
</p>
</element>
<强>输出: - 强>
this is sample text in <italic>italic</italic> and in <bold>bold</bold>.