如何读取XML中节点的属性值,高手帮忙,谢谢大家了,工作中,急用啊,多谢了。 搜索一下csdn的文档中心里关于xml的文章,有使用jdom的介绍,使用jdom可以生成和读取xml。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用 jdom 示例如下://从xml文件里读取SAXBuilder builder = new SAXBuilder();//初始化try { doc = builder.build(new File(path + XML_FILE));}catch (Exception e) { e.printStackTrace(); return null;}String[] propName = new StringUtils().parsePropertyName(name);Element root = doc.getRootElement();//得到根元素for (int i = 0; i < propName.length; i++) { root = root.getChild(propName[i]);//得到propName[i] if (root == null) { System.out.println("this element has no children!"); return null;//找不到,返回null }}//取得属性值String value = root.getText();if ("".equals(value)) { return null;//属性值为""返回null}else { //放入session value = value.trim(); session.setAttribute(name, value); return value;} NamedNodeMap map = null;NodeList regions = doc.getElementsByTagName("Region"); for (int region = 0, regionNum = regions.getLength(); region < regionNum; region++) { map = regions.item(region).getAttributes(); for (int i = 0, iSize = map.getLength(); i < iSize; i++) { int rowFrom = 0, rowTo = 0; short colFrom = 0, colTo = 0; rowFrom = Integer.parseInt(map.getNamedItem("rowFrom"). getNodeValue()); rowTo = Integer.parseInt(map.getNamedItem("rowTo").getNodeValue()); colFrom = Short.parseShort(map.getNamedItem("colFrom"). getNodeValue()); colTo = Short.parseShort(map.getNamedItem("colFrom"). getNodeValue()); :)原来大家都在用Jdom 啊,,,帮忙顶 这篇文章或许对你有帮助,我刚刚看到的:http://dev.csdn.net/develop/article/14/14917.shtm 用jdom.jar : Document doc=null; SAXBuilder sbuilder = new SAXBuilder(); Reader read = new StringReader(s); try { doc = sbuilder.build(read); } catch (JDOMException ex) { throw new JDOMException(ex); } Element root = doc.getRootElement(); Element varElement = root.getChild("Root"); Iterator it = varElement.getChildren().iterator(); while(it.hasNext()) { ................. } 只是读取的话,用SAX就可以了 public void startElement(String namespaceURI, String lName, String qName, Attributes attrs) throws SAXException { String eName = lName; if ("".equals(eName)) eName = qName; lastElement = eName; if (attrs != null) { for (int i = 0; i < attrs.getLength(); i++) { String aName = attrs.getLocalName(i); if ("".equals(aName)) aName = attrs.getQName(i); if (aName.equals("about") || aName.equals("rdf:about")) //只把about属性加入结果集 add2Map(aName, attrs.getValue(i)); } } } public void endElement(String namespaceURI, String sName, String qName) throws SAXException { if (sName.equals("Description") || qName.equals("rdf:Description")) { Object value = tags.get("label"); if (value != null) { ArrayList temp = (ArrayList) value; for (int i = 0; i < temp.size(); i++) { if ( ( (String) temp.get(i)).toLowerCase().indexOf(searchKey) != -1) { resultArray.add(tags); } } } tags = null; } } 还 有个问题啊如何将XML文件,转化为Document,谢谢 比如:DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();Document doc=builder.parse(fileName); 求解空指针异常?? 一道数学逻辑题 JFileChooser很慢 初学Java有些地方不明白,还望哥哥们指教....谢谢各位进来一阅..MM这厢有礼啦~ 有关Calendar类的问题 如何在java中实现文件共享的操作 socket多网卡,速度明显减慢 关于打印某一网页,在线等侍... 请问哪里有SL-GMS J/Net下载?而且是解密的。高分送上。 有关JBuilder5的几个问题,先解答者有分,谢谢! 看看出了什么问题? 如何利用sax对xml文件内容进行循环读取?
示例如下:
//从xml文件里读取
SAXBuilder builder = new SAXBuilder();//初始化
try {
doc = builder.build(new File(path + XML_FILE));
}
catch (Exception e) {
e.printStackTrace();
return null;
}String[] propName = new StringUtils().parsePropertyName(name);
Element root = doc.getRootElement();//得到根元素
for (int i = 0; i < propName.length; i++) {
root = root.getChild(propName[i]);//得到propName[i]
if (root == null) {
System.out.println("this element has no children!");
return null;//找不到,返回null
}
}//取得属性值
String value = root.getText();
if ("".equals(value)) {
return null;//属性值为""返回null
}
else {
//放入session
value = value.trim();
session.setAttribute(name, value);
return value;
}
NodeList regions = doc.getElementsByTagName("Region");
for (int region = 0, regionNum = regions.getLength();
region < regionNum; region++) {
map = regions.item(region).getAttributes();
for (int i = 0, iSize = map.getLength(); i < iSize; i++) {
int rowFrom = 0, rowTo = 0;
short colFrom = 0, colTo = 0; rowFrom = Integer.parseInt(map.getNamedItem("rowFrom").
getNodeValue());
rowTo = Integer.parseInt(map.getNamedItem("rowTo").getNodeValue());
colFrom = Short.parseShort(map.getNamedItem("colFrom").
getNodeValue());
colTo = Short.parseShort(map.getNamedItem("colFrom").
getNodeValue());
用jdom.jar :
Document doc=null;
SAXBuilder sbuilder = new SAXBuilder();
Reader read = new StringReader(s);
try {
doc = sbuilder.build(read);
}
catch (JDOMException ex) {
throw new JDOMException(ex);
}
Element root = doc.getRootElement();
Element varElement = root.getChild("Root");
Iterator it = varElement.getChildren().iterator();
while(it.hasNext())
{
.................
}
public void startElement(String namespaceURI,
String lName,
String qName,
Attributes attrs) throws SAXException {
String eName = lName;
if ("".equals(eName))
eName = qName;
lastElement = eName;
if (attrs != null) {
for (int i = 0; i < attrs.getLength(); i++) {
String aName = attrs.getLocalName(i);
if ("".equals(aName))
aName = attrs.getQName(i);
if (aName.equals("about") || aName.equals("rdf:about")) //只把about属性加入结果集
add2Map(aName, attrs.getValue(i));
} }
} public void endElement(String namespaceURI,
String sName,
String qName) throws SAXException { if (sName.equals("Description") || qName.equals("rdf:Description")) {
Object value = tags.get("label");
if (value != null) {
ArrayList temp = (ArrayList) value;
for (int i = 0; i < temp.size(); i++) {
if ( ( (String) temp.get(i)).toLowerCase().indexOf(searchKey) != -1) {
resultArray.add(tags); }
}
}
tags = null;
} }
如何将XML文件,转化为Document,谢谢
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(fileName);