c#xml字符串获取标记值

c#xml字符串获取标记值,c#,xml,C#,Xml,在数据库中,我有一个值为 <CourseName>Banking Awareness</CourseName><Category>Bank</Category><CourseCode>Banking01</CourseCode> Banking awarenessbankinging01 我想得到CourseCode的值,即Banking01,如果它存在于字符串中。请建议如何在c中执行此操作# 编辑: 其中一个字段值具有

在数据库中,我有一个值为

<CourseName>Banking Awareness</CourseName><Category>Bank</Category><CourseCode>Banking01</CourseCode>
Banking awarenessbankinging01
我想得到CourseCode的值,即Banking01,如果它存在于字符串中。请建议如何在c中执行此操作#

编辑: 其中一个字段值具有如下xml字符串:

<CourseName>Banking Awareness</CourseName><ImageUrl xsi:nil="true" ></ImageUrl><Category>Bank</Category><CourseCode>Banking01</CourseCode>
Banking awarenessbankinging01
它抛出错误:{“'xsi”是一个未声明的前缀。第1行,位置62。“}


有什么建议/建议可以解决这个问题吗?

这里有一种方法可以使用不需要根节点的文档片段来解决这个问题

using System.Xml;
...

string xml = "<CourseName>Banking Awareness</CourseName><Category>Bank</Category><CourseCode>Banking01</CourseCode>";

XmlDocument doc = new XmlDocument();

//Create a document fragment.
XmlDocumentFragment docFrag = doc.CreateDocumentFragment();

//Set the contents of the document fragment.
docFrag.InnerXml = xml;

//Select the node with xpath expression
XmlNode courseCode = docFrag.SelectSingleNode("CourseCode");

string courseCodeValue = courseCode.InnerText;
使用System.Xml;
...
string xml=“Banking awarenessbanking01”;
XmlDocument doc=新的XmlDocument();
//创建一个文档片段。
XmlDocumentFragment docFrag=doc.CreateDocumentFragment();
//设置文档片段的内容。
docFrag.InnerXml=xml;
//使用xpath表达式选择节点
XmlNode courseCode=docFrag.SelectSingleNode(“courseCode”);
字符串courseCodeValue=courseCode.InnerText;

使用xml解析器?由于它不是有效的XML—您必须将它封装在单个根中,比如
“+yourXML+”
,然后解析(就像许多关于C语言中XML解析的类似问题一样,已经有人问过)它是否在DB中记录为字符串?@Selvin:根据XML规范,它是有效的XML。只是形式不太好。您可以使用Xml设置进行处理:Settings.ConformanceLevel=ConformanceLevel.Fragment@根据规范,格式不好的东西不是XML文档。除了在我的一个xml字符串中有一个标记ImageUrl xsi:nil=“true”>引发错误外,这似乎是可行的:{“'xsi'是一个未声明的前缀。第1行,位置62。”}关于如何解决这个问题,有什么建议吗?我认为如果您不知道可能遇到什么前缀,这将是一个问题。我认为使用正则表达式可能比找出片段中的名称空间并将其添加到文档对象更容易。