Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何指定要由JavaSAX解析器解析的XML文件的一部分?_Java_Xml_File_Parsing_Sax - Fatal编程技术网

如何指定要由JavaSAX解析器解析的XML文件的一部分?

如何指定要由JavaSAX解析器解析的XML文件的一部分?,java,xml,file,parsing,sax,Java,Xml,File,Parsing,Sax,我有XML文件要由JavaSAX解析器解析。我希望解析器只解析begin和end标记(和)之间的内容,而不是整个文件。如何指定要由JavaSAX解析器解析的XML文件的一部分? 我的xml文件如下所示: some tags <Models> my content to be parsed <LifeLine... <state condition... other tags </LifeLine> ...... </Models> <Dia

我有XML文件要由JavaSAX解析器解析。我希望解析器只解析begin和end标记(
)之间的内容,而不是整个文件。如何指定要由JavaSAX解析器解析的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解析器的输出进入
XMLFilter
,该过滤器将所选事件传递到应用程序的下一步。您的
XMLFilter
在获取
Models
开始标记时将打开开关,在获取
Models
结束标记时将关闭开关;仅当开关打开时,事件才会传递到管道中的下一步。

模型的开头存储在布尔变量中,并且仅当该布尔变量为真时才读取
生命线,当然,当您在
endElement
处理程序中报告
Models
时,请将其设置为false。@Martin Honnen感谢@MichaeI Kay我尝试了Martin Honnen的建议,谢谢您的帮助
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);}...