У меня есть следующий XML файл.
<THE_SETTINGS>
<SOURCE_FOLDER>\SERVER_NAME\folder1\</SOURCE_FOLDER>
<NETWORK_DEVICE>eth1<SERIAL>A0123456</SERIAL></NETWORK_DEVICE>
</THE_SETTINGS>
В моем коде С# я читаю в документе XML следующим образом
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("PATH_TO_XML");
Я могу успешно прочитать значение SOURCE_FOLDER и SERIAL в переменных, однако, когда я получаю неправильное значение при попытке прочитать поле NETWORK_DEVICE. Мой ожидаемый результат для network_device_name должен быть network_device_name = eth1, но я получаю комбинированный ответ network_device и serial. IE eth1A0123456
string source_folder_value;
string network_device_name;
string serial;
if(xmldoc.SelectSingleNode("//THE_SETTINGS/SOURCE_FOLDER") != null )
{
//Success
source_folder_value= xmldoc.SelectSingleNode("//THE_SETTINGS/SOURCE_FOLDER").InnerText.ToString();
}
if(xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE") != null )
{
//Failed after this line network_device_name = "eth1A0123456"
network_device_name= xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE").InnerText.ToString();
}
if(xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE/SERIAL") != null )
{
//Success serial=A0123456
serial= xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE/SERIAL").InnerText.ToString();
}
Как получить только eth1 для имени сети?
Попробуй это:
//THE_SETTINGS/NETWORK_DEVICE/text()
Пытаться
xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE").FirstChild.InnerText
network_device_name = xmldoc.SelectSingleNode("//THE_SETTINGS/NETWORK_DEVICE/text()").InnerText;
, Возвращаетeth1
. И нет необходимости вызыватьToString()
для строкового объекта ...