Я хочу написать программу в java и использовать saxparser для сортировки XML-файла, подобного этому link , которые выполняют следующие действия; получить ID из входных данных и анализ и поиск в файле XML и пишет текста и названия и имени пользователя (XML-теги), указанный для принятых ID (только * ID * ы после тега ns - мой смысл) в файле. и программы предполагают, чтобы сделать то же самое для четырех других идентификаторованализ XML-файла в java с использованием анализатора SAX
и нуждаются в вашей помощи ...
public class ReadXMLFile {
public static int ID_number_1 ;
public static void main(String[] args) {
for(int x=1; x<=5; x++){
if(x==1)System.out.println("enter an integer as ID:\n");
else System.out.println("enter another ID:\n");
try{
Scanner sc = new Scanner(System.in);
ID_number_1 = sc.nextInt();
/*
* some process happening here;
*/
SAXParserFactory factory = SAXParserFactory.newInstance();
try{
SAXParser saxParser = factory.newSAXParser();
MyProjectHandler handler = new MyProjectHandler();
saxParser.parse("src\\SAX-XML-FAWiki.xml", handler);
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
/*
*
*/
System.out.println("writing in file "+ID_number_1);
switch (x) {
case 1:
System.out.println("we got your first id :"+ID_number_1);
break;
case 2:
System.out.println("we got your second id :"+ID_number_1);
break;
case 3:
System.out.println("we got your third id :"+ID_number_1);
break;
case 4:
System.out.println("we got your fourth id :"+ID_number_1);
break;
case 5:
System.out.println("we got your fifth id :"+ID_number_1);
break;
}
}catch (Exception e) {
System.out.println("You should enter a valid integer");
}
}
}
}
public class MyProjectHandler extends DefaultHandler {
private FAWiki wiki = null;
public String getFwkList() {
return wiki.toString();
}
boolean bid = false;
boolean btitle = false;
boolean btext = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException{
if(qName.equalsIgnoreCase("id")){
bid = true;
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if (qName.equalsIgnoreCase("id")) {
}
}
@Override
public void characters(char ch[], int start, int length) throws SAXException{
if(bid){
int temp = Integer.parseInt(new String(ch, start, length));
if(ReadXMLFile.ID_number_1 == temp){
wiki = new FAWiki();
wiki.setid(temp);
btitle = true;
btext = true;
}
}
if(btitle){
wiki.settitle(new String(ch, start, length));
btitle = false;
}
if(btext){
wiki.settext(new String(ch, start, length));
btext = false;
System.out.println(getFwkList());
}
}
}
общественного класса FAWiki {
private String title;
private int id;
private String text;
public String gettitle(){
return title;
}
public void settitle(String title){
this.title = title;
}
public int getid(){
return id;
}
public void setid(int id){
this.id = id;
}
public String gettext(){
return text;
}
public void settext(String text){
this.text = text;
}
public String toString(){
return "<page>\n"+"\t<title>"+this.title+"</title>\n"+"\t<id>"+this.id+" </id>\n"+"\t<text>"+this.text+"</text>\n"+"</page>";
}
}
и Я ожидаю такого результата для каждого ID:
<Page>
<title>AccessibleComputing</title>
<id>654982</id>
<text>#REDIRECT [[Computer accessibility]] {{R from CamelCase}}</text>
<username>Xqbot</username>
</Page>
Что вы пробовали? Вы читали [Oracle Tutorial SAX] (http://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html)? – ztirom
Вы должны вставить свой код выше в теги кода! – ztirom
Ссылки, которые вы предоставили, никоим образом не дают результатов для вашего кода, который вы дали в качестве комментария, и не приводят никаких примеров, как вы упомянули в своем вопросе. – Chaitanya