将 XPath 与 XDocument 一起使用时忽略 CData

Ignore CData when using XPath with XDocument

我想从 XML 中提取数据并通过 XPath 将其转换为 DateTime。我有以下功能:

DateTime? GetXPathDate(string xPath, XDocument xDoc)
{
    DateTime? result = null;
    var element = xDoc.XPathSelectElement(xPath);
    return result;
}

我可以找到该元素,但问题是它包含在 CData 中:

<CarName>
    <![CDATA[XXX Jan]]>
</CarName>

是否有通过 XDocument 忽略 CData 部分的方法,或者我是否需要将我自己的正则表达式排除在外?

请尝试以下概念示例。

c#

void Main()
{
    string elementName = "CarName";
    
    XElement xelem = XElement.Parse("<CarName><![CDATA[XXX Jan]]></CarName>");
    
    XElement x = xelem.DescendantsAndSelf(elementName).FirstOrDefault();
    Console.WriteLine(x.Value);
}

输出

XXX Jan