如何使用Xpath访问此xml节点中的数据(CDATA)?
我有下一个XML:如何使用Xpath访问此xml节点中的数据(CDATA)?,xml,xpath,cdata,Xml,Xpath,Cdata,我有下一个XML: <?xml version="1.0" encoding="UTF-8"?> <mailAndMessageSettings> <settings> <add key="Url" value=""/> <add key="UserName" value=""/> <add key="Password" value=""/> </sett
<?xml version="1.0" encoding="UTF-8"?>
<mailAndMessageSettings>
<settings>
<add key="Url" value=""/>
<add key="UserName" value=""/>
<add key="Password" value=""/>
</settings>
<mail>
<subject>
Mp3 Submission
</subject>
<body>
<![CDATA[
<meta http-equiv="Content-Type" content="text/html; charset="utf-8""/>
<head></head>
<body>
<p>Hi,</p>
<p>Please find the attached mp3</p>
<p><a href="mymp3.mp33">here</a></p>
<p>Regards,</br>
Pete</p>
</body>
</html>
]]>
</body>
</mail>
</mailAndMessageSettings>
但是,当我使用它时,它会选择从html中的第一个body标记(correct)到body标记的所有内容,而不是XML文档中的body标记
如何在不包含CDATA标记的情况下选择正文XML中的所有CDATA?解析器只将CDATA作为文本进行访问,因为这就是它的用途
如果您没有验证,并且似乎没有将其声明为HTML(这将限制双主体标记的存在),我不确定您为什么需要
CDATA
声明。如果是因为它是动态生成的,而您不确定字符串中可能会生成什么,那么您应该将文本包装在动态生成的html中,放在CDATA
中。您需要获取CDATA节点,将其加载到单独的XmlDocument中,然后再次调用XPath查询。使用/mailAndMessageSettings/mail/body/text()
所以实际上我只是将外部body标记改为bodyHtml标记。。。。然后使用:
/mailAndMessageSettings/mail/bodyHtml
/mailAndMessageSettings/mail/bodyHtml