Значение узла Xml subchild в VB.NET
Я пытаюсь прочитать XML-файл, но при чтении дочернего узла я сталкиваюсь с трудностями. В прилагаемом ниже XML - файле любезно подскажите мне, как прочитать дочерний узел "UoM" и "количество" плотности?
Я попытался использовать цикл foreach так же, как элементы для плотности, но это не сработало для меня. Пожалуйста, помогите мне с этим.
Вот этот XML - файл :
<itemtomes> <applicationarea> <messagetype>ADD/UPATE ITEM <description>Items from ERP to MES <sender>M3 <receiver>WONDERWARE <creationdatetime>2019-11-09 12:45:10.978 <confirmation>Never <errormsg> <dataarea> <items> <item> <itemcode>10002912 <itemname>L-Valine 96.5% <itemtype>152 Feed Additives Small packaging <status>P <shelflife>365 <site>75A <uom>KG <packagetype>SMALLBAG <packagesize>25 <density> <quantity>0.9 <uom>L/KG <alternativematerials> <alternativematerial> <itemcode>10002911 <item> <itemcode>10006351 <itemname>Wheat Flour Fine <itemtype>101 Feed Materials Large packaging <status>A <shelflife>365 <site>75A <uom>KG <packagetype>BIGBAG <packagesize>1000 <density> <quantity>1.2 <uom>L/KG <alternativematerials> <alternativematerial> <itemcode>
Я попробовал приведенный ниже код, но столкнулся с трудностями :
{================================================================================================================+=} DT = Now(); SQL_Connection = new System.Data.SqlClient.SqlConnection("Server=localhost;Database=NUTRECOM3;User ID=sa;Password=ssmits@1234"); FOR EACH XML_FILES in System.IO.Directory.GetFiles(Me.FilePath,"*Item*.xml"); LogMessage("XML_FILES::"+XML_FILES); Doc = new System.Xml.XmlDocument; Doc.Load(XML_FILES); XMLTBL = doc.NameTable; XML_NSM = new System.Xml.XmlNamespaceManager(XMLTBL); 'XML_NSM.AddNamespace("asx","http://www.sap.com/abapxml"); {========================================================APPLICATION AREA=============================================} MessageType = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/MessageType").InnerText; Description = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/Description").InnerText; Sender = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/Sender").InnerText; Receiver = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/Receiver").InnerText;; CreationDateTime = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/CreationDateTime").InnerText; Confirmation = Doc.SelectSingleNode("/ItemToMES/ApplicationArea/Confirmation").InnerText; {======================================================================================================================} dim m_nodelist as System.Xml.XmlNodeList; dim m_node as System.Xml.XmlNode; m_nodelist = Doc.getElementsByTagName("Item"); LogMessage(m_nodelist.Count); Z=1; X=1; for each m_node in m_nodelist; {================================================= READ - FIRST FIELD =================================================} ''SQL_FTPC_OBJ_TYPE =Doc.SelectSingleNode("/asx:abap/asx:values/TAB/item/FTPC_OBJ_TYPE",XML_NSM).InnerText; ''LogMessage(SQL_FTPC_OBJ_TYPE); ItemCode =m_node.Item("ItemCode").InnerText; if (ItemCode == null and ItemCode == "") then LogMessage("ItemCode is not having any value"); else LogMessage("ItemCode = " + ItemCode); endif;
Что я уже пробовал:
Попробовал использовать для каждого узла плотности, но это не сработало для меня
phil.o
Это не корректный XML, ни соответствующего кода C#.
Maciej Los
Коротко И По Существу!
RickZeeland
Ты хочешь, чтобы я ... VB.NET код для работы с искаженным XML, или вы можете получить правильный XML-файл?
Richard Deeming
Ваше приложение не должно подключаться к SQL как sa
Это неограниченная учетная запись пользователя, которая может быть использована для уничтожения вашей базы данных, вашего сервера или даже вашей сети.
И я надеюсь, что это не твоя вина. реальный" sa
пароль, который вы только что опубликовали на публичном форуме?! Если это так, вы должны немедленно изменить его. И на этот раз выбрал надежный пароль, а не что-то такое, что можно взломать за несколько минут.