[英]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.