0

私はそのようなxmlファイルを持っています:

element
 element1
  element1
element

ここで: element1 にはテキスト、または 2 つの要素 element2 element3 のいずれかまたは両方を含めることができるため、xml ファイルは次のようになります。

<element>
 <element1>
 hi hello etc
  </element1>
</element>

また

<element>
 <element1>
 hi hello etc
 <element2>
 how are you
   </element2>
  <element3>
    fine
   </element3>
  </element1>
</element>

上記の例のようになっている場合、解析に成功しています。タグでノードにアクセスし、そこからコンテンツを取得できます。xml が次の形式の場合、問題が発生します。

<element> 
<element1>
 <element2>
 how are you
   </element2>
  </element1>
</element>

XMLドキュメントを通過し、タグ要素1、要素2、要素3をチェックして内容を取得するループがあります。上記の例では、受け入れが得られ、ループが終了します。それが element1 に達したとき、コンテンツを取得せず、代わりに別の要素があるためです。この問題を解決するのを手伝ってくださいありがとう

4

1 に答える 1

0

各行に要素名またはテキスト コンテンツのみが含まれている場合は、スタックを使用してそのようなコンテキストを解析します。そのため、スタック S を定義し、XML ファイルを次のように定義します。

<element>
  <element1>
    hi hello etc
    <element2>
        how are you
    </element2>
    <element3>
        fine
    </element3>
  </element1>
</element>

したがって、アイデア全体は次のようになります。

プッシュ<element> --> S[ <element>]

プッシュ<element1> --> S[ <element>, <element1>]

プッシュhi hello etc--> S[ <element>, <element1>, hi hello etc]

プッシュ<element2> --> S[ <element>, <element1>, hi hello etc, <element2>]

プッシュhow are you --> S[ <element>, <element1>, hi hello etc, <element2>, how are you]

Get </element2>、次に Pop を 2 回実行して get how are you --> S[ <element>, <element1>, hi hello etc]

プッシュ<element3> --> S[ <element>, <element1>, hi hello etc, <element3>]

プッシュfine --> S[ <element>, <element1>, hi hello etc, <element3>, fine]

Get </element3>、次に Pop を 2 回実行して get fine --> S[ <element>, <element1>, hi hello etc]

Get </element1>、次に Pop を 2 回実行して get hi hello etc --> S[ <element>]

ってことですよね??

于 2012-11-13T22:33:23.683 に答える