2016-07-24 14 views
0

私はXMLであるアンドロイドマニフェストファイルを持っています。そのデータを文字列に格納されていると$xmldata変数以下のように:アレイ内のすべてのandroid:screendensityの値を取得する方法 <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>文字列として格納されたXMLデータから属性値を取得する方法は?

? これはアンドロイドマニフェストファイルなので、xml構造は通常のxmlファイルとは異なります。 完全なXMLを表示here

+2

可能な複製(http://stackoverflow.com/questions/3577641/how -do-you-parse-and-process-html-xml-in-php) – ThW

答えて

1

あなたのXMLが間違っていると思います。あなたがPHPを使用している場合@ThWによってコメントとして、パーサライブラリを使用すると

<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> 


「画面」タグは次のように閉じる必要があります。
または私はあなたがこのように正規表現を使用することをお勧めします:[?あなたはどのように解析しないとPHPでのプロセスのHTML/XML]の

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

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

XML構造は無効に見えますが、これはandroid apkファイルに含まれています。 – Mihir

+0

うわー、私はそれを知らなかった。しかし、私の答えの監督のexpretionはとにかく動作します。 – nshmura

+0

ありがとうございます。それはうまく動作します。完全なXMLにも重複値が含まれているので、array_unique()も使用しました。 – Mihir

関連する問題