我的任务是从 XFDL 文件中提取和剥离相关数据。我正在尝试使用 XmlDocument 的 SelectSignleNode 方法来执行此操作。然而,事实证明它并不成功。
代表 XML:
<XFDL>
...
<page1>
<check3>true</check3>
</page1>
...
<page sid="PAGE1">
<check sid="CHECK9">
<value>true</value>
</check>
</page>
...
代码:
XmlDocument document = new XmlDocument();
document.Load(memoryStream);//decoded and unzipped xfdl file
//Doesn't work
XmlNode checkBox = document.SelectSingleNode("//check[@sid='CHECK9']/value");
//Doesn't work
XmlNode checkBox = document.SelectSingleNode("//page[@sid='PAGE1']/check[@sid='CHECK9']");
MsgBox(checkBox.InnerXml);
产生我 System.NullReferenceException 因为未选择 XmlNode。
我想我遇到了 xpath 问题,但我似乎无法理解在哪里。使用以下命令可以轻松选择较早的 xml 节点:
XmlNode checkBox = document.SelectSingleNode("//page1/check3");
MsgBox(checkBox.InnerText);
显示就好。<check9></check9>
只是为了阻止它,<page1>
标签中没有定义。
有人有一些见识吗?
提前致谢。