سؤال

حاليا أنا أستخدم ونظرت من خلال هذا الرمز http://us.php.net/manual/en/function.xml-set-element-handler.php#85970.كيف أحصل على النص بين العلامات؟

أنا أستخدم PHP5 و XML المحلل

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

المحلول

هذا يجب أن يفسر ذلك:

 xml_set_character_data_handler ( $parser, 'tagContent' );

 function tagContent ( $parser, $content )
 {
 }

نصائح أخرى

لا تستخدم محلل XML في PHP إلا إذا كنت تعرف ما تفعله - إنه محلل ساكس يتطلب منك فهم فكرة أحداث ساكس. لا تحتاج إليها إلا إذا كنت بحاجة إلى التعامل مع ملفات XML كبيرة جدا بسرعة كبيرة. مقابل 99٪ من الحالات، لا تحتاج إلى استخدامه. بناء على سؤالك، يمكنك ببساطة فتح ملف XML وابحث عن علامة معينة واستخراج السلاسل الواردة في هذه العلامة. لذلك، يجب عليك استخدام محلل DOM أو SimpleXML. يتيح لك SimpleXML استخدام XPath - انظر رمز المثال هذا الذي هو على نطاق واسع ما تريد. (إذا كنت ترغب في استخدام DOM، فسيتعين عليك البحث عن ذلك على موقع PHP - لا يمكنني نشر الارتباطات التشعبية لأنني مبتدئ - فقط احرص على عدم الخلط بينه باستخدام Domxml وهو محلل PHP4 XML القديم .)

إذا قمت بتخفيف قراءة هذا وأنت تريد أن تتعلم كيفية استخدام SAX Parsing، فستساعد Google - لكن نظرية الأساسيات هي: سيتم معالجة التعليمات البرمجية الخاصة بك الوثيقة الكاملة كسلسلة من الأحداث. سيمثل كل حدث شيئا في المستند - بدءا من بداية المستند، ثم يتم فتح كل عنصر وإغلاقه، كل سمة يتم تحليلها، ويتم تحليل كل سلسلة. تحتاج إلى الحصول على رمز يستمع إلى الأحداث التي تهتم بها - عندما يتم فتح عنصر وإغلاقه - ثم من ذلك، معرفة ما إذا كان العنصر الذي يتم فتحه هو الشخص الذي تريده - إذا كان الأمر كذلك، فأنت بحاجة إلى ذلك معالج الأحداث الذي يتعامل مع النص الذي يجب أن يستمع الآن للنص وتخزين أي نص تبحث عنه في متغير. عند الانتهاء، يمكنك إغلاق الدفق ثم افعل ما تريد القيام به مع النص.

مرة أخرى، بناء على السؤال، يبدو أنك بحاجة إلى DOM أو SimpleXML لا SAX.

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