字符串处理的问题? thanks,to lengshuangzi(冷霜子),取出每一对r的信息.to yoken(雨泉) ,xpath怎么做,能写一下代码么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <sample><r> <xx>ddd</xx></r><c> <p name="5">erw</></c><r>trter <aa> <r>ff</r> </aa></r></sample>取ddd : sample/r/xx/text()取erw : sample/c/p/text()取trter : sample/r/text()取ff : sample/r/aa/r/text() to yoken(雨泉) ,你这是不行的,你不能动态获取。 以 <r> 和 </r> 为一对,如果有嵌套就用压栈来实现吧. to yoken(雨泉) 说的是dom 多谢,to topsonstar(星),能不能详细一点,不太明白。 package com.test.csdn.xml;public class TestParseXml{ private static String tag; class MyHandler extends org.xml.sax.helpers.DefaultHandler { private String part = null; public void startElement(String uri, String localName, String qName, org.xml.sax.Attributes attributes) { if (qName.equals(tag)) { part = "<" + tag + ">";// part=""; } else if (part != null) { part += "<" + qName + ">"; } } 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><xx>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()); }} 详细说明见:http://expert.csdn.net/Expert/topic/1987/1987765.xml?temp=.9690363 package com.test.csdn.xml;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><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()); }} java多线程输出不同文件,数据都写在一个文件中的问题! 打印出来排序后全部都是0 Java 为什么paintComponent会被自动调用 java 如何实现密码屏蔽 (马上给分) 部署EJB到Webloigc Server上去的时候出错?帮忙看看,谢谢! 下面的代码为何出错? 请问spring如何调用oracle函数,帮忙看一下这样行吗 求教:如何将一串字符串 按boolean的运算方式来运算。 求大神看看我这个简单的约瑟夫环 哪里错了 字符串处理难题? 偶来报名!!!!
<r>
<xx>ddd</xx>
</r>
<c>
<p name="5">erw</>
</c>
<r>trter
<aa>
<r>ff</r>
</aa>
</r>
</sample>取ddd : sample/r/xx/text()
取erw : sample/c/p/text()
取trter : sample/r/text()
取ff : sample/r/aa/r/text()
你这是不行的,你不能动态获取。
to topsonstar(星),
能不能详细一点,不太明白。
{
private static String tag;
class MyHandler
extends org.xml.sax.helpers.DefaultHandler
{
private String part = null;
public void startElement(String uri, String localName, String qName,
org.xml.sax.Attributes attributes)
{
if (qName.equals(tag))
{
part = "<" + tag + ">";
// part="";
}
else if (part != null)
{
part += "<" + qName + ">";
}
}
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><xx>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());
}
}
http://expert.csdn.net/Expert/topic/1987/1987765.xml?temp=.9690363
{
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><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());
}
}