J'ai ce document où je veux obtenir la valeur en "x_server_response/retrieve_resources_by_category_response/source_full_info/record/ datafield[@tag='520']/subfield[@code='a']"
Mais je ne peux pas! Pourquoi?Comment accéder à un nœud xml avec des attributs et un espace de noms en utilisant selectsinglenode()
Je soupçonne que cela a quelque chose à voir avec la déclaration de l'espace de noms au nœud enregistrement. Mais je ne peux pas comprendre comment le faire.
mon code ressemble à ceci:
XmlNodeList xmlResources = r.ResponseXmlDocument.SelectNodes("x_server_response/retrieve_resources_by_category_response/source_full_info);
foreach (XmlNode xmlResource in xmlResources)
{
string information = xmlResource.SelectSingleNode("record/datafield[@tag='520']/subfield[@code='a']").InnerText;
Et le xml va comme ceci:
<x_server_response> metalib_version="4.00 (20)>
<source_full_info>
<record xmlns="http://www.loc.gov/MARC21/slim/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<controlfield tag="001">CKB02166</controlfield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="a">Providing access to thousands of online journals from leading
scholarly, academic and business publishers, the Ingenta Select service provides fast and
reliable access from a global network of servers to users' desktops around the world.
## ##Ingenta Select provides access to more than 5,000 electronic
publications from over 190 publisher clients and bring together an extensive range of services
for the librarian and end-user alike</subfield>
</datafield> </record>
</source_full_info>
<session_id new_session="N">3B7F9EQE259KNK1YUK462VCCG4455T4BUPUC5B9LVQS9XD16U6</session_id>
<x_server_response>
c'est exactement ce que je cherche. Je ne savais pas que vous pouviez ajouter un espace de noms sans fournir un nametable. Je vais essayer cette première chose demain matin. Je vous remercie. – Fontanka16