C# 以文本形式获取XML子元素和内容

C# 以文本形式获取XML子元素和内容,c#,xml,linq,C#,Xml,Linq,我有一个完整的XML文档,我正在使用LINQ成功地导航到XML。我有一个包含HTML的子节点,我想以字符串的形式获取子节点的全文 ... <p> this is sample text in <italic>italic</italic> and in <bold>bold</bold>. </p> ... 。。。 这是斜体和粗体的示例文本。 ... var text=node.Element(“p”).Valu

我有一个完整的XML文档,我正在使用LINQ成功地导航到XML。我有一个包含HTML的子节点,我想以字符串的形式获取子节点的全文

...
<p>
  this is sample text in <italic>italic</italic> and in <bold>bold</bold>.
</p>
...
。。。

这是斜体和粗体的示例文本。

...
var text=node.Element(“p”).Value
返回
这是斜体和粗体的示例文本。

var text=node.Element(“p”).ToString()返回
这是斜体和粗体的示例文本。

我真正想要的是
这是斜体和粗体的示例文本。

什么方法将以字符串形式返回内部文本和内部标记?我不想要外部的
标签

var reader = node.Element("p").CreateReader();
reader.MoveToContent();
var inerXml = reader.ReadInnerXml();

试试这个:- 您可以直接使用
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>.


这是斜体和粗体的示例文本。

输出:-

<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>.
这是斜体和粗体的示例文本。

我去寻找它,但没有将其视为Element()结果的属性。谢谢。我自己经过一番探索才想到的。应该是一个很好的扩展方法!这是一种有趣的方法,但我不是在使用xdocs,而是在使用Linq到XML。