我正在try 以编程方式定位由XPath标识的XML文本中的元素.也就是说,不仅要在解析的XML struct 中找到引用的元素,还要确定原始XML文档中的开始和结束字符位置.
更多关于我试图解决的问题:我维护一个将XMLs发送到Web服务的C#程序.如果Web服务报告错误(在数据级别,而不是在XML语法中),则错误响应将错误的位置作为XPath包含.我想要做的是找到标识的元素,以便在UI中突出显示它.
我发现了XPathNavigator和XmlNode.SelectSingleNode,但它们似乎只在解析后的XML struct 上操作.如果有一种方法可以将这些映射回原始XML中的行/字符位置,我是看不到的.
有谁能帮忙吗?
精简后的示例:
<?xml version="1.0" encoding="utf-8"?>
<ODM xmlns="http://www.cdisc.org/ns/odm/v1.3" ODMVersion="1.3" FileType="Transactional">
<ClinicalData StudyOID="xxx" MetaDataVersionOID="1">
<SubjectData SubjectKey="yyy" TransactionType="Insert">
<SiteRef LocationOID="zzz" />
</SubjectData>
</ClinicalData>
</ODM>
错误响应中的XPath如下所示:
/ODM/ClinicalData[1]/SubjectData[1]