سؤال

أنا جديد في ASP ولدي موعد نهائي في الأيام القليلة القادمة.أتلقى ملف XML التالي من داخل استجابة خدمة الويب.

print("<?xml version="1.0" encoding="UTF-8"?>
<user_data>
<execution_status>0</execution_status>
<row_count>1</row_count>
<txn_id>stuetd678</txn_id>
<person_info>
    <attribute name="firstname">john</attribute>
    <attribute name="lastname">doe</attribute>
    <attribute name="emailaddress">john.doe@johnmail.com</attribute>
</person_info>
</user_data>");

كيف يمكنني تحليل ملف XML هذا إلى سمات asp؟

أي مساعدة يحظى بتقدير كبير

شكرا داميان

في مزيد من التحليل، يتم أيضًا إرجاع بعض عناصر الصابون نظرًا لأن استجابة aboce تأتي من مكالمة خدمة ويب.هل لا يزال بإمكاني استخدام كود Lukes أدناه؟

هل كانت مفيدة؟

المحلول

أنت بحاجة إلى القراءة عن محلل MSXML.هنا رابط لمثال جيد الكل في واحد http://oreilly.com/pub/h/466

بعض القراءة على XPath ستساعدك أيضًا.يمكنك الحصول على كافة المعلومات التي تحتاجها في MSDN.

سرقة الكود من لوقا رد ممتاز لأغراض التجميع:

Dim oXML, oNode, sKey, sValue

Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0") 'creating the parser object
oXML.LoadXML(sXML) 'loading the XML from the string

For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
  sKey = oNode.GetAttribute("name")
  sValue = oNode.Text
  Select Case sKey
    Case "execution_status"
    ... 'do something with the tag value
    Case else
    ... 'unknown tag
  End Select
Next

Set oXML = Nothing

نصائح أخرى

بواسطة ASP أفترض أنك تقصد Classic ASP؟يحاول:

Dim oXML, oNode, sKey, sValue

Set oXML = Server.CreateObject("MSXML2.DomDocument.4.0")
oXML.LoadXML(sXML)

For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
  sKey = oNode.GetAttribute("name")
  sValue = oNode.Text
  ' Do something with these values here
Next

Set oXML = Nothing

يفترض الكود أعلاه أن لديك XML الخاص بك في متغير يسمى sXML.إذا كنت تستهلك هذا عبر طلب ServerXMLHttp، فيجب أن تكون قادرًا على استخدام خاصية ResponseXML للكائن الخاص بك بدلاً من oXML أعلاه وتخطي خطوة LoadXML تمامًا.

يمكنك محاولة تحميل ملف xml في كائن xmldocument ثم تحليله باستخدام طرقه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top