我正在解析xml字符串。我只能打印一个孩子。
我的代码:
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class RunReport {
public static void main(String[] args){
String xmlcontent="<Results><ResultSet fetchSize=\"2\">"
+ "<Row rowNumber=\"1\"><TBC_ID>29379155</TBC_ID><TBC_DATE>2013-01-31</TBC_DATE></Row>"
+ "<Row rowNumber=\"2\"><TBC_ID>29379576</TBC_ID><TBC_DATE>2013-01-31</TBC_DATE></Row>";
Document doc = Jsoup.parse(xmlcontent);
Elements rows =doc.getElementsByTag("Row");
List<Element> resultSet= doc.getElementsByTag("Row");
for(int i=0; i<resultSet.size();i++){
Element RsRecord = resultSet.get(i);
Elements columns = RsRecord.children();
for(Element column:columns){
System.out.println("Row id:"+i+",Column Node name:"+column.nodeName()+",Value="+column.ownText());
}
}
}
输出:
Row id:0,Column Node name:tbc_id,Value=29379155
Row id:1,Column Node name:tbc_id,Value=29379576
标记-“行”有两个子节点,但我的输出仅显示一个子节点。
预期:
Row id:0,Column Node name:tbc_id,Value=29379155
Row id:0,Column Node name:tbc_date,Value=2013-01-31
Row id:1,Column Node name:tbc_id,Value=29379576
Row id:1,Column Node name:tbc_date,Value=2013-01-31
最佳答案
这对我有用:
package test;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class RunReport {
public static void main(String[] args){
String xmlcontent="<Results>"
+ "<ResultSet fetchSize=\"2\">"
+ "<data rowNumber=\"1\">"
+ "<a>29379155</a>"
+ "<b>2013-01-31</b>"
+ "</data>"
+ "<data rowNumber=\"2\">"
+ "<a>29379576</a>"
+ "<b>2013-01-31</b>"
+ "</data>"
+ "</Results>"
+ "</ResultSet>";
Document doc = Jsoup.parse(xmlcontent);
List<Element> resultSet = doc.getElementsByTag("data");
for(int i=0; i<resultSet.size();i++){
Element RsRecord = resultSet.get(i);
Elements columns = RsRecord.children();
for(Element column:columns){
System.out.println("Row id:"+i+",Column Node name:"+column.nodeName()+",Value="+column.ownText());
}
}
}
}
我的猜测是您正在xml中使用保留的工作。当我使用您的代码时,这是为我打印的结构:
<row rownumber="1">
<tbc_id>
29379155
<tbc_date>
2013-01-31
<row rownumber="2">
<tbc_id>
29379576
<tbc_date>
2013-01-31
</tbc_date>
</tbc_id>
</row>
</tbc_date>
</tbc_id>
</row>
<row rownumber="2">
<tbc_id>
29379576
<tbc_date>
2013-01-31
</tbc_date>
</tbc_id>
</row>
关于java - jsoup xml解析-不显示子节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46933656/