将 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
我想从 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