سؤال

وأنا تعلم Android api من كتاب، ويبدو أن ليس هناك أي ذكر لstream-lined api للتعامل مع raw xml (القراءة <م> والكتابة ). اقتراحه للتحليل هو XmlPullParser، وأمثلة له تبدو رهيبة النظر في هذا النوع من api's أنا مدلل من قبل في منصات أخرى (LINQ to XML خاصة).

هل هذا هو أفضل تقنية متاحة على Android platform؟

ومن الواضح أن أستطيع أن أكتب مجمع لتجنب الاشياء المتكررة، ولكن سأشعر بالدهشة إذا لم يكن شيء من هذا القبيل موجودا بالفعل.

وأيضا، وقال انه لا حتى اذكر إنشاء xml structures في التعليمات البرمجية. ما هي خياراتي على حد سواء؟

في الجانب علما، والقيام بأي المشروعات الإنمائية Java التي هي مألوفة مع LINQ to XML in .Net معرفة أي شيء يعادل في جافا؟

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

المحلول

ومنذ وربما كنت لا تريد تحميل أي DOMS كبيرة الحجم في الذاكرة الروبوت - سحب ويفضل موزعي SAX طريقة التعامل مع XML في الروبوت. أعتقد أنه يدفع إلى الاستثمار في فهم كيف يعمل SAX وكتابة معالج مخصص من الاعتماد على بعض المكتبات العامة التي قد تكون غير متوافقة أو overbloated. I تحليل XML في التطبيقات الخاص بي باستخدام SAX في كل وقت وأنا مسرور جدا مع سرعة (أكثر من مرة)

نصائح أخرى

وحسنا أنا جميلة جديدة إلى جاوة، ولكن هنا ما كنت جمعت حتى الآن نحو أكس تحليل على الروبوت:

وينصح نهج XmlPullParser لالروبوت بسبب القيود المفروضة على الموارد. هناك محلل DOM متاح في الروبوت، التي من شأنها أن تتيح لك استخدام XPath لتنقل وثيقة XML. باستخدام DOM يعني أن لديك لتحميل المستند بأكمله في الذاكرة في آن واحد، ولكن. طريقة XmlPullParser أكثر كفاءة من حيث الذاكرة المستخدمة.

وطريقة XmlPullParser يأخذ قليلا التعود بعد أن مريحة مع LINQ إلى XML أو كسباث، لكنها في الحقيقة لا IMHO سيئة للغاية (على الأقل مع وثائق كنت تحليل). إذا كنت تعمل مع مستندات XML الصغيرة التي يمكن بالتأكيد استخدام DOM مع كسباث.

وهناك مادة لائقة حول أساليب مختلفة لقراءة والكتابة XML مع الروبوت هنا: http://www.ibm.com/developerworks/opensource/ مكتبة /-X الروبوت / index.html و

وكان لي نفس القضايا مع تحليل أكس أو الأقسام المختلفة وانتهى كتابة خدمة ويب يفعل ذلك بالنسبة لي.

Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device

ويمكنك نقل البيانات في JSON للعمل معها على الجهاز. وميزة هذا هو يمكنك تقليل حركة المرور على شبكة للهاتف المحمول بطيئة وتغيير إعراب دون الافراج عن التطبيق الروبوت الجديد.

وربما هذا هو سيعمل لك أيضا.

وبالنسبة

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