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