-1

我有一个完整的 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>标签。

4

2 回答 2

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>.
于 2013-10-11T03:48:38.760 回答
1
var reader = node.Element("p").CreateReader();
reader.MoveToContent();
var inerXml = reader.ReadInnerXml();

或者

var inerXml = string.Concat(node.Element("p").Nodes().Select(x => x.ToString()).ToArray());
于 2013-10-11T03:34:37.243 回答