我知道有几个关于将XML数据读入Java的问题,但我见过的所有问题都没有我需要的答案。 (我对XML术语知之甚少)我有一堆我需要的数据似乎包含在标签中。例如:
<powerplay ppg="28" ppopp="176" pppct=".159" pk="171" pkopp="193" pkpct=".886"/>
我希望能够将这些数字存储为我的信息。任何信息都将不胜感激。
注意:“powerplay”标签用
括起来<team......../team>
标签,通过DOM将我的程序引导到这个特定的行是否很简单?
谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
//given that the doc is your xml file
public NodeList getMainInfo(Document doc) {
NodeList feed = doc.getElementsByTagName("powerplay");
Node feedElement = feed.item(0);
NodeList info = feedElement.getChildNodes();
return info;
}
public String getPPG(NodeList info){
Element powerplay = (Element) info;
return info.getAttribute("ppg");
}
public String getPPOPP(NodeList info){
Element powerplay = (Element) info;
return info.getAttribute("ppopp");
}
答案 2 :(得分:0)
如果使用Java SAX(tutorial)解析XML,则可以通过startElement()回调中的属性对象来获取属性。 Attributes相当容易操作 - 如果您知道所需属性的名称,则只需调用getValue()就可以获取它。
这是一个很好的解决方案,用于访问Java中的XML数据,我强烈推荐它。
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if (qName.equals("powerplay")) {
// Utilize attributes object to get your attributes.
}
}
在上面的例子中,我们让处理程序检查给定元素是否是powerplay
元素,然后相应地处理它的属性。
SAX解析器的一大优点是它不会将您正在解析的文档加载到内存中。如果您无法控制文档大小或预计文档大小非常大,这是一件非常非常好的事情。