質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

XMLパーサ

XML文書のテキストデータだけを抜き出して、アプリケーションソフトが利用しやすい形式に変換させるソフトウェアをXMLパーサと呼びます。

Q&A

解決済

1回答

1473閲覧

XMLのルールのルールについて

ssmxgo

総合スコア178

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

XMLパーサ

XML文書のテキストデータだけを抜き出して、アプリケーションソフトが利用しやすい形式に変換させるソフトウェアをXMLパーサと呼びます。

0グッド

0クリップ

投稿2015/03/04 08:32

編集2015/03/04 08:34

XMLのPHPでパースを行っていて気がついたのですが、array2xmlという関数を使っていましたが、最初はこれのバグかと思いましたがどうもXMLの構造の仕様なのかな?と感じるところがありましてお聞きいたします。
※書き方や言葉の問題は初心者ゆえお許しくださいまし

例えば3レコードある著者の場合はこのような配列に変換されます

lang

1root{ 2 [0] 3 author{ 4 value='太郎' 5 } 6 [1] 7 author{ 8 value='次郎' 9 } 10 [2] 11 author{ 12 value='三郎' 13 } 14}

次に位置レコードのデータを読み込むと

lang

1root{ 2 [0] 3 author{ 4 value='太郎' 5 } 6}

とはならず、

lang

1root{ 2 author{ 3 value='太郎' 4 } 5}

というように添字?インデックス?が省略され階層も下げられます。
この関数の問題かと思っていましたが、扱っているうちにphp付属の関数(なんだか忘れました)を利用した時や、あるいは扱うXMLでも1レコードに対するもので添字を見たこと無いので…、これはもしかして①仕様なのでしょうか?

そしてみなさんはXMLを取り込んで配列化するとき、②該当する項目に添字があるかか判定し配列でない場合は[0]として添字を割り当てるのでしょうか?

意味がわからなかったらごめんなさいっていうか、スルーしてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

仕様でしょう。XMLの性質上、そうなるのは仕方ないと思います。

XMLのデータはCSVやRDBのように、必ず同じ型の集合を持った行の羅列とは限らないので、
全て添え字で返すというわけにはいかず、状況によりけりなレコードが返ることになると思います。

投稿2015/03/04 11:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssmxgo

2015/03/04 11:33

やはりそうでしたか。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問