?? feedreader1.java
字號(hào):
// JAXP packages
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.w3c.dom.*;
import java.io.*;
/**
* This is a program to echo a DOM tree using DOM Level 2 interfaces. Use
* JAXP to load an XML file and create a DOM tree. DOM currently does not
* provide a method to do this. (This is planned for Level 3.) See the
* method "main" for the three basic steps. Once the application obtains a
* DOM Document tree, it dumps out the nodes in the tree and associated
* node attributes for each node.
*
* This program also shows how to validate a document along with using an
* ErrorHandler to capture validation errors.
*
* Note: Program flags may be used to create non-conformant but possibly
* useful DOM trees. In some cases, particularly with element content
* whitespace, applications may not want to rely on JAXP to filter out
* these nodes but may want to skip the nodes themselves so the application
* will be more robust.
*
* Added code that shows how to use JAXP 1.2 features to
* support W3C XML Schema validation. See the JAXP 1.2 maintenance review
* specification for more information on these features.
*
*/
public class FeedReader1 {
/** All output will use this encoding */
static final String outputEncoding = "UTF-8";
/** Output goes here */
private PrintWriter out;
/** Indent level */
private int indent = 0;
/** Indentation will be in multiples of basicIndent */
private final String basicIndent = " ";
public Feeds FD;
FeedReader1(PrintWriter out) {
this.out = out;
FD=new Feeds();
}
/**
* Echo common attributes of a DOM2 Node and terminate output with an
* EOL character.
*/
private void printlnCommon(Node n) {
String val;
if(n.getNodeType()==Node.TEXT_NODE){
if(n.getParentNode().getNodeName().equalsIgnoreCase("title")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setTitle(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setTitle(n.getNodeValue()); }
}
} else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("image")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setImtitle(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setImtitle(n.getNodeValue()); }
}
}else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("item")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");(FD.getIttitle()).addElement(""); }
else { out.print("\"" + n.getNodeValue() + "\"");(FD.getIttitle()).addElement(n.getNodeValue()); }
}
}else ;
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("link")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setLink(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setLink(n.getNodeValue()); }
}
} else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("image")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setImlink(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setImlink(n.getNodeValue()); }
}
}else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("item")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");(FD.getItlink()).addElement(""); }
else { out.print("\"" + n.getNodeValue() + "\"");(FD.getItlink()).addElement(n.getNodeValue()); }
}
}else ;
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("description")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setDesc(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setDesc(n.getNodeValue()); }
}
}else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("item")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");(FD.getItdesc()).addElement(""); }
else { out.print("\"" + n.getNodeValue() + "\"");(FD.getItdesc()).addElement(n.getNodeValue()); }
}
}else ;
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("pubDate")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setPub(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setPub(n.getNodeValue()); }
}
}else if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("item")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");(FD.getItpub()).addElement(""); }
else { out.print("\"" + n.getNodeValue() + "\"");(FD.getItpub()).addElement(n.getNodeValue()); }
}
}else ;
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("language")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setLang(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setLang(n.getNodeValue()); }
}
}
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("copyright")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("channel")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setCopy(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setCopy(n.getNodeValue()); }
}
}
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("url")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("image")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setImurl(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setImurl(n.getNodeValue()); }
}
}
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("width")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("image")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setImwidth(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setImwidth(n.getNodeValue()); }
}
}
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("height")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("image")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");FD.setImheight(""); }
else { out.print("\"" + n.getNodeValue() + "\"");FD.setImheight(n.getNodeValue()); }
}
}
out.println();
}else if(n.getParentNode().getNodeName().equalsIgnoreCase("category")){
if(n.getParentNode().getParentNode().getNodeName().equalsIgnoreCase("item")){
out.print(" nodeName=\"" + n.getNodeName() + "\"");
val = n.getNodeValue();
if (val != null) {
out.print(" nodeValue=");
if (val.trim().equals("")) { out.print("[WS]");(FD.getItcat()).addElement(""); }
else { out.print("\"" + n.getNodeValue() + "\"");(FD.getItcat()).addElement(n.getNodeValue()); }
}
}
out.println();
}
}//END of TEXT_NODE
}
/**
* Indent to the current level in multiples of basicIndent
*/
private void outputIndentation() {
for (int i = 0; i < indent; i++) {
out.print(basicIndent);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -