如何使用choicesinglenode()访问带有属性和命名空间的xml节点source_full_info/record/datafield[@tag='520']/subfield[@code='a']”但我做不到!为什么?我怀疑它与记录节点上的名称空间声明有关。但我不知道该怎么做。我的代码如下所示:XmlNodeListxmlResources=r.ResponseXmlDocument.SelectNodes("x_server_response/retrieve_resources_by_category_response/source_full_info);foreach(XmlNodexmlResourceinxmlResources){stringinformation=xmlResource.SelectSingleNode("record/data'field2[@0tag']/subfield[@code='a']").InnerText;xml是这样的:metalib_version="4.00(20)>CKB02166IngentaSelect服务提供对领先学术、学术和商业出版商的数千种在线期刊的访问提供从全球服务器网络到世界各地用户桌面的快速可靠的访问。####IngentaSelect提供对来自190多个出版商客户的5,000多种电子出版物的访问,并为图书馆员和最终用户等提供广泛的服务3B7F9EQE259KNK1YUK462VCCG4455T4BUPUC5B9LVQS9XD16U6因为一些节点位于“http://www.loc.gov/MARC21/slim/"命名空间,但您的XPath仅在空命名空间中查找元素。要解决此问题,请通过调用名称空间管理器使您的环境具有名称空间意识:XmlNamespaceManagernsmgr=newXmlNamespaceManager(r.ResponseXmlDocument);nsmgr.AddNamespace("marc","http://www.loc.gov/MARC21/slim/");stringxpath="marc:record/marc:datafield[@tag='520']/marc:subfield[@code='a']";//...字符串信息=xmlResource。SelectSingleNode(xpath).InnerText;编辑:尽管选择//??marc:datafield[@tag='520']/marc:subfield[@code='a']并摆脱您目前完全采用的两步法可能更容易。以上就是C#学习教程:如何使用choicesinglenode()来访问所有带有属性和命名空间的xml节点共享的内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击有权联系管理员删除。如需转载请注明出处:
