【发布时间】:2014-04-30 01:17:54
【问题描述】:
您好,我在从我的 oracle 数据库中保存为 varchar2 的 xml 脚本中提取内部文本时遇到问题。 在获取时,我得到了以下格式的 xml:
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<SpecificAction xmlns=\"http://www.xyz.com/schemas/core/caut\">action to take</SpecificAction>"
使用以下代码获取以下 xml:
instance.cautDescription = records.GetStringOrDefault("SPEC_ACTION");
字段 SPEC_ACTION 是 VARCHAR2(4000 BYTE) 类型。
由于数据库中的 xml 中存在 \ 字符,我无法提取带有标签的内部文本。我尝试了以下代码来获取内部文本:
string s = instance.cautDescription;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(s);
XmlNode specificAction = xmlDoc.DocumentElement.SelectSingleNode("/SpecificAction");
string specific = specificAction.InnerText;
xmlString = specificAction.InnerText;
return xmlString;
我的代码返回 null 是否可以避免,如果可以,任何支持都会非常有帮助。
【问题讨论】:
-
这是因为命名空间(xmlns)。您需要使用 XmlNamespaceManager。