teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを記載いたしました。

2017/08/22 09:29

投稿

SugiuraY
SugiuraY

スコア318

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,29 @@
14
14
  ```XML
15
15
  <A a="111" b="222" c="333"></A>
16
16
  <B a="444" b="555" c="666"></A>
17
+ ```
18
+
19
+
20
+ (加筆)
21
+ うまくご説明できるかわかりませんが、申し少し分かりやすい例でコードを記載させて頂きます。
22
+
23
+ ```PHP
24
+ $cArray=array(111,222,333,444,555,666,777,888,999);
25
+ $xml='<A a="apple" b="banana" c="333"></A> <A a="orange" b="peach" c="666"></A> <A a="pinapple" b="mango" c="999"></A>';//失礼しました、分かりやすいように修正します
26
+ $num=($sampleNode->length);//A,B,Cで3つ
27
+ for ($i=0; $i < $num; $i++) {
28
+ $searchNode=$sampleNode->item($m)->getAttribute('c');
29
+ $resultArray[]=$searchNode;
30
+ }
31
+ $num2=count($cArray);//9つ
32
+ for ($i=0; $i <$num2 ; $i++) { //ループで111,222,333~999がc属性のものをすべて検索
33
+ if ($cArray[$i]==$resultArray[0]) {
34
+ $key=0;
35
+ } elseif($cArray[$i]==$resultArray[1]){
36
+ $key=1;
37
+ }elseif($cArray[$i]==$resultArray[2]){
38
+ $key=2;
39
+ }
40
+ $fruit[]=$sampleNode->item($key)->getAttribute('b');//111,222,444,555,,777,888はxmlに存在しないためNull 333=>banana 666=>peach 999=>mangoが取得できる
41
+ }
17
42
  ```