2016-07-24 6 views
0

Ich habe eine Android-Manifest-Datei, die xml ist. Angenommen, seine Daten in einem String-Variable $xmldata wie unten gespeichert: <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versioncode="13507140" android:versionname="1.35.7" package="com.google.android.apps.youtube.music" platformbuildversioncode="23" platformbuildversionname="6.0-2166767"> <uses-sdk android:minsdkversion="16" android:targetsdkversion="23"> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"> <uses-feature android:name="android.hardware.screen.portrait"> <compatible-screens> <screen android:screensize="200" android:screendensity="160"> <screen android:screensize="200" android:screendensity="240"> <screen android:screensize="200" android:screendensity="320"> <screen android:screensize="400" android:screendensity="420"> <screen android:screensize="400" android:screendensity="480"> <screen android:screensize="400" android:screendensity="560"> <screen android:screensize="400" android:screendensity="640"> </screen></screen></screen></screen></screen></screen></screen></compatible-screens> </uses-feature></uses-permission></uses-sdk></manifest>Wie erhalten Sie Attributwerte aus XML-Daten, die als String gespeichert sind?

Wie alle android:screendensity Werte in Array bekommen? Dies ist Android-Manifest-Datei, so Xml-Struktur unterscheidet sich von normalen XML-Datei. Vollständige XML-Datei anzeigen here.

+2

Mögliche Duplikat (http://stackoverflow.com/questions/3577641/how -do-du-parse-und-prozess-html-xml-in-php) – ThW

Antwort

1

Ich denke, dass Ihre XML falsch ist.

<compatible-screens> 
    <screen android:screenSize="200" android:screenDensity="160"/> 
    <screen android:screenSize="200" android:screenDensity="240"/> 
    <screen android:screenSize="200" android:screenDensity="320"/> 
    <screen android:screenSize="400" android:screenDensity="420"/> 
    <screen android:screenSize="400" android:screenDensity="480"/> 
    <screen android:screenSize="400" android:screenDensity="560"/> 
    <screen android:screenSize="400" android:screenDensity="640"/> 
</compatible-screens> 

Dann, wenn Sie PHP, verwenden Parser Bibliothek von @ThW als kommentierte verwenden:
Das sollte „Bildschirm“ Tag wie folgt geschlossen werden.
Oder empfehle ich Ihnen reguläre Ausdrücke wie folgt zu verwenden: [? Wie Sie analysieren und verarbeiten HTML/XML in PHP]

preg_match_all("/screenDensity=\"(\d+)\"/", $xmldata, $result); 

// $result[1]; is array of screenDensitys 
+0

XML-Struktur sieht ungültig, aber das ist, was android apk-Dateien enthalten. – Mihir

+0

Wow, das war mir nicht bewusst. Aber die Regelerweiterung in meiner Antwort wird trotzdem funktionieren. – nshmura

+0

Danke. Es funktioniert gut. Full Xml enthält auch doppelte Werte, also habe ich array_unique() auch :) – Mihir

Verwandte Themen