我有一个 XML 文件要由 java sax 解析器解析。我希望解析器仅解析开始和结束标记之间的内容( <Models>
和 </Models>
)而不是整个文件。如何指定要由 java Sax 解析器解析的 XML 文件的一部分?
我的xml文件如下:
some tags
<Models>
my content to be parsed
<LifeLine...
<state condition...
other tags
</LifeLine>
......
</Models>
<Diagrams>
....
<LifeLine..
<state condition...
<State condition..
</LifeLine>
other tags
</Diagrams>
所以我希望 Sax 解析器仅解析 <Models>
之间的内容和</Models>
因为当解析整个文件中的状态条件值时,输出给了我<图>部分中的状态条件值,我不想读取它们。
有帮助吗?
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equals("LifeLine")) {
currentLifeLine=new Lifeline(attributes.getValue("Name"), StateList,TimeInstList);
}
else if (qName.equals("StateCondition")) {
currentSC=new State(attributes.getValue("Id"), attributes.getValue("Name"));
}
.................
public void endElement(String uri, String localName, String qName) throws SAXException {
if (qName.equals("StateCondition")) {
currentLifeLine.addStateCondition(currentSC);}...
最佳答案
创建一个管道,其中 SAX 解析器的输出进入 XMLFilter
,该 XMLFilter 将选定的事件传递到应用程序的下一步。您的 XMLFilter
在获取 Models
开始标记时设置开关,并在获取 Models
结束标记时设置开关关闭;仅当开关打开时,事件才会传递到管道中的下一步。
关于java - 如何指定 Java Sax 解析器解析 XML 文件的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58064442/