Java如何获取xml文件中子节点的属性

<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<graph id="G" edgedefault="undirected">
<node id="n0"/>
<node id="n1"/>
<node id="n2"/>
<node id="n3"/>
<node id="n4"/>
<node id="n5"/>
<node id="n6"/>
<node id="n7"/>
<node id="n8"/>
<node id="n9"/>
<node id="n10"/>
<edge source="n0" target="n2"/>
<edge source="n1" target="n2"/>
<edge source="n2" target="n3"/>
<edge source="n3" target="n5"/>
<edge source="n3" target="n4"/>
<edge source="n4" target="n6"/>
<edge source="n6" target="n5"/>
<edge source="n5" target="n7"/>
<edge source="n6" target="n8"/>
<edge source="n8" target="n7"/>
<edge source="n8" target="n9"/>
<edge source="n8" target="n10"/>
</graph>
</graphml>
如何获取node的各id值和edge的各属性值?

public class StudentTest {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
Document document = db.parse(new File("student.xml"));

NodeList node = document.getElementsByTagName("学生");
for(int i=0;i<node.getLength();i++){
Element element = (Element)node.item(i);
// 获取属性学号
String content = element.getAttribute("学号");
System.out.println("学号:" + content);

content = element.getElementsByTagName("姓名").item(0).getFirstChild().getNodeValue();
System.out.println("姓名:" + content);

content = element.getElementsByTagName("性别").item(0).getFirstChild().getNodeValue();
System.out.println("性别:" + content);

content = element.getElementsByTagName("年龄").item(0).getFirstChild().getNodeValue();
System.out.println("年龄:" + content);
System.out.println();
}
}
}

// 被解析的XML文件内容(student.xml)
<?xml version="1.0" encoding="UTF-8"?>
<学生名册>
<学生 学号="0001214">
<姓名>张燕</姓名>
<性别>女</性别>
<年龄>22</年龄>
</学生>

<学生 学号="0001239">
<姓名>李继成</姓名>
<性别>男</性别>
<年龄>22</年龄>
</学生>

<学生 学号="0001275">
<姓名>华伟</姓名>
<性别>男</性别>
<年龄>22</年龄>
</学生>

</学生名册>

自己慢慢看吧;

// 获取属性学号
String content = element.getAttribute("学号");
System.out.println("学号:" + content);

追问

为什么代码有错啊,按照提示改了还是不行?

追答

什么错误,是不是没有捕获异常

追问

我知道怎么改了,谢谢你的回答给了我启示,非常感谢~

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-10
现获得graph 父节点在获得其所有子节点追问

我不太会,能说的详细点吗?

第2个回答  2014-03-10
dom4j 用这个,很easy追问

我不太会,能说的详细点吗?

追答

去找个dom4j.jar包, 放到工程里, 然后去百度找个dom4j教程看看 就可以写了

java如何从一个xml文件读取根节点、子节点属性。
1> 有xml文件路径,获取该路径下的所有文件,用后缀“.xml”或“.XML”过滤得到xml文件。2> javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();org.w3c.dom.Document doc = builder.parse(is); 创建文档对象。3>doc.getChildNodes()获取文档中所有的节点,循环遍历所得节点node...

java中dom4j解析xml文件怎么获取节点属性
dom4j中,使用Element.attributes方法可以获取到节点的属性,而使用elements则可以获取相应的子节点 比如:Element root = doc.getRootElement();List attrList = root.attributes();for (int i = 0; i < attrList.size(); i++) { \/\/属性的取得 Attribute item = (Attribute)attrList.get(i);...

java 解析 xml字符串 取子节点数值
大致的代码是:Document doc = DocumentHelper.parseText(sss);Element root = doc.getRoot();\/\/或许是doc.rootElement();,这里获取到的是process节点 Iterator<?> iter = root.elementIterator("task");\/\/这里是task节点的迭代器,因为有多个task,所以使用迭代器,如果是一个节点的话,就使用root....

java 关于读取xml文件的问题
1.获取文档的根节点。Element rootElm = document.getRootElement();2.取得某节点的单个子节点。Element memberElm=root.element("member");\/\/ "member"是节点名 3.取得节点的文字 String text=memberElm.getText();也可以用:String text=root.elementText("name");这个是取得根节点下的name字节点...

java 如何循环读取xml下相同子节点
\/\/ 获取属性 List attrs = root.attributes();if (attrs != null && attrs.size() > 0) { System.err.print(prefix);for (Attribute attr : attrs) { System.err.print(attr.getValue() + " ");} System.err.println();} \/\/ 获取他的子节点 List childNodes = root.elements();pref...

如何用java程序从xml文件中根据文本内容获取指定标签并删除标签和内容...
❤ 在Java程序中如何获取XML文件的内容 解析的目的:获取节点名、节点值、属性名、属性值;四种解析方式:DOM、SAX、DOM4J、JDOM DOM、SAX :java 官方方式,不需要下载jar包DOM4J、JDOM :第三方,需要网上下载jar包 示例:解析XML文件,目标是解析XML文件后,Java程序能够得到xml文件的所有数据 ...

java 截取 xml(字符串)的子节点
你好,直接indexOf <task> 跟 <\/task> 然后subString一下都没问题.或者正则表达式 <task>(.*?)<\/task> 如果是一个长期的工程,量比较大的,考虑用dom4j来做吧.http:\/\/xhy0422.iteye.com\/blog\/50235 对于已经是字符串的xml,可以

java读取配置文件的方法(xml)
回答:建议看哈JAXP 关于java操作xml其实很简单

...节点有属性,value直接赋值,没有子节点的xml格式?
要实现节点有属性,value直接赋值,没有子节点的XML格式,可以使用Java的XML注解方式来实现。首先,定义一个Java类来表示这种XML节点:public class XMLNode { XmlAttribute \/\/ 使用@XmlAttribute注解表示属性 private String name;XmlValue \/\/ 使用@XmlValue注解表示节点的值 private String value;\/\/ 构造...

java解析xml文件
} \/\/获取属性名称、值 Iterator<Attribute> iter1 = element.attributeIterator();while(iter1.hashNext()){ Attribute el = (Attribute)iter1.next();el.getName();el.getValue();\/\/获取属性名称和值 } 如果取所有,则用递归取:public void getInfo(Element root){ Iterator<Element> iter =...

相似回答