簡體   English   中英

使用DOM解析XML文檔

[英]XML document parsing with DOM

我有這樣的xml文件:

element
 element1
  element1
element

現在:element1可以有文本,或者兩個元素中的一個或兩個都可以是text2 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文檔並檢查標簽element1,element2,element3並獲取條件。 對於上面的示例,我被接受,並且循環終止。 因為當到達element1時,它沒有內容,而是存在另一個元素。 請幫我解決這個問題謝謝

如果每一行僅包含元素名稱或文本內容,我將使用堆棧來解析此類上下文。 因此,定義堆棧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 ]

push <element2> -> S [ <element><element1>hi hello etc<element2> ]

how are you -> S [ <element><element1>hi hello etc<element2>how are you ]

獲取</element2> ,然后彈出兩次,然后how are you -> S [ <element><element1>hi hello etc ]

push <element3> -> S [ <element><element1>hi hello etc<element3> ]

fine --S [ <element><element1>hi hello etc<element3>fine ]

獲取</element3> ,然后彈出兩次,然后變fine -> S [ <element><element1>hi hello etc ]

獲取</element1> ,然后彈出兩次,然后打個hi hello etc -> S [ <element> ]

你是這個意思嗎??

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM