SAX解释的问题? Two formats are the same to XML. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个?他们在sax中的输出都是一样的呀。public class TestParseXml{ private static String tag; class MyHandler extends org.xml.sax.helpers.DefaultHandler { private String part = null; private String getAttr(org.xml.sax.Attributes t) { String s=""; for(int i=0;i<t.getLength();i++) { s=s+" " +t.getQName(i) +"=\""+ t.getValue(i)+"\""; } return s; } public void startElement(String uri, String localName, String qName, org.xml.sax.Attributes attributes) { if (qName.equals(tag)) { part = "<" + tag + getAttr(attributes)+ ">";// part=""; } else if (part != null) { part += "<" + qName + getAttr(attributes) + ">"; } } public void endElement(String uri, String localName, String qName) { if (qName.equals(tag)) { part += "</" + tag + ">"; System.out.println(part); } else { part += "</" + qName + ">"; } } public void characters(char[] ch, int start, int length) { part += new String(ch, start, length); } } public static void setFilterTag(String tag) { TestParseXml.tag = tag; } public static java.io.InputStream getXmlStream() { String xml = "<root><r/><r><k p=\"3\"/><xx test=\"hello!\">ddd</xx></r><c><p name=\"5\">erw</p></c><r>trter</r><aa><r>ff</r></aa></root>"; setFilterTag("r"); return new java.io.ByteArrayInputStream(xml.getBytes()); } public static void main(String[] args) throws Exception { javax.xml.parsers.SAXParserFactory saxParserFtr = javax.xml.parsers.SAXParserFactory.newInstance(); javax.xml.parsers.SAXParser parser = saxParserFtr.newSAXParser(); java.io.InputStream is = getXmlStream(); parser.parse(new org.xml.sax.InputSource(is), new TestParseXml().new MyHandler()); }}会输出:<r></r><r><k p="3"></k><xx test="hello!">ddd</xx></r><r>trter</r><r>ff</r其中,<k p="3"></k>就是代码中的<k p="3"/>。 公司内网如何做规章制度的展示 求webservice视频教程 Struts+Spring.底层框架搭好,写完Service,配置application文件后出现问题 我的过滤器有个漏洞,如何补救? 请教一个tomcat的问题 =======最新常见面试题======,大家看看,最新的哦 2个域名设制2个tomcat,怎么可以不加端口号 有经验的朋友介绍几本入门书看看啊 javamail怎么发不去啊,大伙帮帮我把! 如何设置JBOSS服务器的默认访问页面 谁给我讲讲JAAS(认证与授权)的东东,高份!迫切! 一个cmp的bean发布到jboss,服务器启动产生错误,请问是什么原因
他们在sax中的输出都是一样的呀。
public class TestParseXml
{
private static String tag;
class MyHandler
extends org.xml.sax.helpers.DefaultHandler
{
private String part = null;
private String getAttr(org.xml.sax.Attributes t)
{
String s="";
for(int i=0;i<t.getLength();i++)
{
s=s+" " +t.getQName(i) +"=\""+ t.getValue(i)+"\"";
}
return s;
} public void startElement(String uri, String localName, String qName,
org.xml.sax.Attributes attributes)
{
if (qName.equals(tag))
{
part = "<" + tag + getAttr(attributes)+ ">";
// part="";
}
else if (part != null)
{
part += "<" + qName + getAttr(attributes) + ">";
}
}
public void endElement(String uri, String localName, String qName)
{
if (qName.equals(tag))
{
part += "</" + tag + ">";
System.out.println(part);
}
else
{
part += "</" + qName + ">";
}
}
public void characters(char[] ch, int start, int length)
{
part += new String(ch, start, length);
}
}
public static void setFilterTag(String tag)
{
TestParseXml.tag = tag;
} public static java.io.InputStream getXmlStream()
{
String xml = "<root><r/><r><k p=\"3\"/><xx test=\"hello!\">ddd</xx></r><c><p name=\"5\">erw</p></c><r>trter</r><aa><r>ff</r></aa></root>";
setFilterTag("r");
return new java.io.ByteArrayInputStream(xml.getBytes());
}
public static void main(String[] args) throws Exception
{
javax.xml.parsers.SAXParserFactory saxParserFtr =
javax.xml.parsers.SAXParserFactory.newInstance();
javax.xml.parsers.SAXParser parser = saxParserFtr.newSAXParser();
java.io.InputStream is = getXmlStream();
parser.parse(new org.xml.sax.InputSource(is),
new TestParseXml().new MyHandler());
}
}会输出:
<r></r>
<r><k p="3"></k><xx test="hello!">ddd</xx></r>
<r>trter</r>
<r>ff</r其中,<k p="3"></k>就是代码中的<k p="3"/>。