私は輪郭形式のテキスト文書を6レベルまで持つことができます。ネストされた配列を構築する
.step1 -- step 1. text
..step2 -- step 1. A. text
..step2 -- step 1. B. text
..step2 -- step 1. C. text
..step2 -- step 1. D. text
..step2 -- step 1. E. text
.step1 -- step 2. text
..step2 -- step 2. A. text
...step3 -- step 2. A. (1) text
...step3 -- step 2. A. (2) text
.step1 -- step 3. text
私は正規表現でテキスト文書を解析し、最終的な目標は、ネストされたXML文書にこれを有効にすることです。この
$contentsArray structure
'level' INT - the step level
'type' STRING - the type of tag, note, warning, step1, step2
'line' INT - the line number in the file
'text' STRING - the text
------ SAMPLE ARRAY -------
[0] => Array
(
[level] => 1
[type] => step1
[line] => 8
[text] => Step 1. text
)
[1] => Array
(
[level] => 2
[type] => step2
[line] => 10
[text] => Step 1. A. text
)
[2] => Array
(
[level] => 2
[type] => step2
[line] => 12
[text] => Step 1.B. text
)
[3] => Array
(
[level] => 2
[type] => step2
[line] => 14
[text] => Step 1. C. text.
)
[4] => Array
(
[level] => 2
[type] => step2
[line] => 16
[text] => Step 1. D. text.
)
[5] => Array
(
[level] => 2
[type] => step2
[line] => 18
[text] => Step 1. E. text.
)
[6] => Array
(
[level] => 1
[type] => step1
[line] => 20
[text] => Step 2. text
)
[7] => Array
(
[level] => 2
[type] => step2
[line] => 22
[text] => Step 2. A. Text.
)
[8] => Array
(
[level] => 3
[type] => step3
[line] => 26
[text] => Step 2. A. (1) Text.
)
[9] => Array
(
[level] => 3
[type] => step3
[line] => 28
[text] => Step 3. A. (2) Text.
)
[10] => Array
(
[level] => 1
[type] => step1
[line] => 30
[text] => Step 3. Text
)
のように構成されている配列を構築しています。
<step1>Step 1. text
<step2>Step 1. A. text</step2>
<step2>Step 1. B. text</step2>
<step2>Step 1. C. text</step2>
<step2>Step 1. D. text</step2>
<step2>Step 1. E. text</step2>
</step1>
<step1>Step 2. text
<step2>Step 2. A. text
<step3>Step 2. A. (1) text</step3>
<step3>Step 2. A. (2) text</step3>
</step2>
</step1>
<step1>Step 3. text
</step1>
私が必要とするのは、ネストされた配列を作成してXMLに変換できることです。私は、このアレイの構造は、私は必要なもの
[0] => Array
(
[level] => 1
[type] => step1
[line] => 8
[text] => Step 1. text
), Array
(
[level] => 2
[type] => step2
[line] => 10
[text] => Step 1. A. text
), Array
(
[level] => 2
[type] => step2
[line] => 12
[text] => Step 1.B. text
), Array
(
[level] => 2
[type] => step2
[line] => 14
[text] => Step 1. C. text.
), Array
(
[level] => 2
[type] => step2
[line] => 16
[text] => Step 1. D. text.
), Array
(
[level] => 2
[type] => step2
[line] => 18
[text] => Step 1. E. text.
)
)
[1] => Array
(
[level] => 1
[type] => step1
[line] => 20
[text] => Step 2. text
, Array
(
[level] => 2
[type] => step2
[line] => 22
[text] => Step 2. A. Text.
, Array
(
[level] => 3
[type] => step3
[line] => 26
[text] => Step 2. A. (1) Text.
), Array
(
[level] => 3
[type] => step3
[line] => 28
[text] => Step 3. A. (2) Text.
)
)
)
[2] => Array
(
[level] => 1
[type] => step1
[line] => 30
[text] => Step 3. Text
)
ようなものになるだろうと思うことは、私が築いてきた配列をループする方法についていくつかの助けで、最終的な配列内のネストを把握する
level
値を使用します。私の試みは、この時点までかなり無駄でした。これを行うための再帰的または反復的な方法があるように感じますが、これらは私の強い訴訟ではありません。
助けていただきありがとうございます。私はこの質問が十分明確であることを願っています。
質問を更新する私は質問をするのが非常に貧しい仕事をしたので、私はいくつかの編集をしました。
PHPを使用している場合は、質問に「php」タグを付ける必要があります – alfasin
PHPでこれをやっていますが、これはもっと技術的な質問です。 –
4つのプロパティを持つ連想配列を記述しますが、入力の「テキスト」部分はどこにあり、配列には「text」プロパティがあり、他の3つではありません。 – trincot