我有这样的XML
<OuterTag>
<Name>JAVA
</Name>
<InnerTag>
<Name> PHP
</Name>
</InnerTag>
</OuterTag>
我只想要包含“ Java”的值。但是当我解析时,它也会带来“ PHP”,因为本地名称是相同的。是否可以过滤多个LocalName并选择所需的LocalName?我怎样才能做到这一点?
最佳答案
想法是保存您所处的状态,仅使用布尔值,如果找到“ OuterTag”的打开标签,则将其设置为true,而当找到“ InnerTag”的打开标签时,将其设置为false。
这样,当您找到“名称”标签时,您现在就在其中。
另一种更灵活的方法是在找到标签名称时将其推送/弹出。这样,您可以在找到“名称”标签后检查谁是您的父标签,然后获取正确的值。