C# Выберите SingleNode Issue - PullRequest
0 голосов
/ 23 марта 2020

Следующее утверждение не работает XML ниже? Я получаю Null Returned. См. XML ниже.

var nodesql = xmlDoc.SelectSingleNode("//CUSTOMERS/CUSTOMER[CODE='AHLENS']");

<?xml version="1.0" encoding="utf-8"?>
<CUSTOMERS>
  <CUSTOMER CODE="LABELS" SELECTSQL="select &#xD;&#xA;&#x9;SQUEEZE(PACK_REF),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_NO),':',&#xD;&#xA;&#x9;SQUEEZE(TOT_CARTONS),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHNAME),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_1),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_2),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_3),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_4),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_5),':', &#xD;&#xA;&#x9;SQUEEZE(REF_DET),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_SSCC_NUMBER)&#xD;&#xA;&#x9; from ct_generic" LOCATION="D:\Rendez\source_code\C#\CartonLabelPrinting\CartonLabelPrinting\CartonClasses\\LABELS\LABELS.SLD" />
  <CUSTOMER CODE="ACKERMANN" SELECTSQL="select &#xD;&#xA;&#x9;SQUEEZE(PACK_REF),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_NO),':',&#xD;&#xA;&#x9;SQUEEZE(TOT_CARTONS),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHNAME),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_1),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_2),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_3),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_4),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_STYLE_NO),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SIZE),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_PCS),':',&#xD;&#xA;&#x9;SQUEEZE(REF_DET),':',&#xD;&#xA;&#x9;SQUEEZE(BARCODE)&#xD;&#xA;&#x9; from ct_generic" LOCATION="D:\Rendez\source_code\C#\CartonLabelPrinting\CartonLabelPrinting\CartonClasses\\ACKERMANN\ACKERMANN.SLD" />
  <CUSTOMER CODE="AHLENS" SELECTSQL="select &#xD;&#xA;&#x9;SQUEEZE(PACK_REF),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_NO),':',&#xD;&#xA;&#x9;SQUEEZE(TOT_CARTONS),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHNAME),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_1),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_2),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_3),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_4),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_SSCC_NUMBER),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_FWD_ADDRESS_1),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_FWD_ADDRESS_2),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_FWD_ADDRESS_3),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_FWD_ADDRESS_4),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_WT),':',&#xD;&#xA;&#x9;SQUEEZE(CARTON_PCS),':',&#xD;&#xA;&#x9;SQUEEZE(REF_DET),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_CODE),':',&#xD;&#xA;&#x9;SQUEEZE(CUST_FWD_ADDRESS_5)&#xD;&#xA;&#x9; from ct_generic" LOCATION="D:\Rendez\source_code\C#\CartonLabelPrinting\CartonLabelPrinting\CartonClasses\\AHLENS\AHLENS.SLD" />
  <CUSTOMER CODE="AMAZON" SELECTSQL="select &#xD;&#xA;&#x9;SQUEEZE(PACK_REF),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_CODE),',',&#xD;&#xA;&#x9;SQUEEZE(CARTON_SSCC_NUMBER),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHNAME),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_1),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_2),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_3),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_4),',',&#xD;&#xA;&#x9;SQUEEZE(CUST_SHADDRESS_5),',',&#xD;&#xA;&#x9;SQUEEZE(REF_DET),',',&#xD;&#xA;&#x9;SQUEEZE(CARTON_PCS),',',&#xD;&#xA;&#x9;SQUEEZE(CARTON_NO),',',&#xD;&#xA;&#x9;SQUEEZE(TOT_CARTONS)&#xD;&#xA;&#x9; from ct_generic" LOCATION="D:\Rendez\source_code\C#\CartonLabelPrinting\CartonLabelPrinting\CartonClasses\\AMAZON\AMAZON.SLD" />
</CUSTOMERS>

1 Ответ

0 голосов
/ 23 марта 2020

Вам нужно добавить префикс @ перед Code, чтобы прочитать узел на основе атрибута

var nodesql = xmlDoc.SelectNodes("/CUSTOMERS/CUSTOMER[@CODE='AHLENS']");
var xmlAttribute = nodeSql.Attributes;
string sql3 = xmlAttribute["SELECTSQL"].Value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...