【发布时间】:2012-06-15 10:00:15
【问题描述】:
我得到了我需要的确切输出,但我必须为我的程序使用 POJO 类,我搜索了很多问题,但我没有明确的想法。帮助我解决这个问题,提前感谢我的 xml 编码下面给出了java中的短语。
ReadAndPrintXMLFile 的编码::
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import java.net.URL;
import java.io.InputStream;
public class ReadAndPrintXMLFile{
public static void main (String argv []){
try {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
URL url = new URL("http://xxxxxxxxxxxxxxxx");
InputStream stream = url.openStream();
Document doc = docBuilder.parse(stream);
// normalize text representation
doc.getDocumentElement ().normalize ();
System.out.println ("Root element of the doc is " +
doc.getDocumentElement().getNodeName());
NodeList listOfPersons = doc.getElementsByTagName("head");
int totalPersons = listOfPersons.getLength();
System.out.println("Total no of head : " + totalPersons);
for(int s=0; s<listOfPersons.getLength() ; s++){
Node firstPersonNode = listOfPersons.item(s);
if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){
Element firstPersonElement = (Element)firstPersonNode;
//-------
NodeList firstNameList = firstPersonElement.getElementsByTagName("heading");
Element firstNameElement = (Element)firstNameList.item(0);
NodeList textFNList = firstNameElement.getChildNodes();
System.out.println("Heading : " +
((Node)textFNList.item(0)).getNodeValue().trim());
}//end of if clause
}//end of for loop with s var
}catch (SAXParseException err) {
System.out.println ("** Parsing error" + ", line "
+ err.getLineNumber () + ", uri " + err.getSystemId ());
System.out.println(" " + err.getMessage ());
}catch (SAXException e) {
Exception x = e.getException ();
((x == null) ? e : x).printStackTrace ();
}catch (Throwable t) {
t.printStackTrace ();
}
//System.exit (0);
}//end of main
}
对于这个 xml 解析程序,我必须 POJO 类,所以为此我创建了一个这样的类
public class POJOurl {
private String heading;
public String getHeading() {
return heading;
}
public void setHeading(String heading) {
this.heading = heading;
}
}
这里我不知道如何在我的程序中使用这些 get 和 set 方法,使用这些 public String getHeading() 和 public void setHeading(String heading) 我必须执行程序.. 我必须得到输出什么我现在..唯一的事情是我必须为这个程序使用 POJO 类
输出::
Root element of the doc is root1
Total no of head : 4
Heading : Appliance Repairs
Heading : Air conditioning and refrigeration services
Heading : Accountants
Heading : Accident Management
【问题讨论】:
-
您的具体问题/问题是什么?
-
我必须创建 POJO 类((即)使用 get 和 set 方法我必须生成输出)并且我必须从该类中获取输出,
-
您正在阅读的这个 XML - 它是针对 XSD 编写的吗?
-
@user1443848 我可能会走得更远,但是您需要将 XML 文件读入 POJO 类的东西吗?如果是这样,您应该看看 Jaxb 之类的。无论如何,我认为 kjp 说 XSD 会有所帮助是正确的。
-
试试 JAXB jaxb.java.net/guide
标签: java xml-parsing pojo