Java 如何访问XML中的值
为了访问值id1和id2,我迭代XML中的每个值,如果我找到一个名为id1或id2的标记,我将其值读入一个变量。是否有更好的方法读取值id1和id2Java 如何访问XML中的值,java,xml,Java,Xml,为了访问值id1和id2,我迭代XML中的每个值,如果我找到一个名为id1或id2的标记,我将其值读入一个变量。是否有更好的方法读取值id1和id2 1. 测验 id1 id2 瓦尔2 瓦尔1 如果使用XPath,可以直接从文档对象提取值。在您的情况下,到达id1的XPath将是/begin/id1如果使用XPath,可以直接从文档对象提取值。在您的例子中,到达id1的XPath将是/begin/id1我将使用任何支持XPath的库。是目前我最喜欢的,但是还有很多。我会使用任何支持XPath的
1.
测验
id1
id2
瓦尔2
瓦尔1
如果使用XPath,可以直接从文档对象提取值。在您的情况下,到达id1
的XPath将是/begin/id1
如果使用XPath,可以直接从文档对象提取值。在您的例子中,到达id1
的XPath将是/begin/id1
我将使用任何支持XPath的库。是目前我最喜欢的,但是还有很多。我会使用任何支持XPath的库。是我目前最喜欢的,但是还有很多。您可以使用。这是在Java中处理XML的一种非常健壮的方法。您可以使用。这是在Java中处理XML的一种非常健壮的方法。使用SAX解析器,将“id1”开始元素后发出的文本存储为id1值,将“id2”开始元素后发出的文本存储为id2值
例如:
publicstaticlist getid(InputStream xmlStream)抛出ParserConfigurationException、SAXException、IOException{
最终列表ID=新的ArrayList();
SAXParserFactory=SAXParserFactory.newInstance();
SAXParser SAXParser=factory.newSAXParser();
parse(xmlStream,新的DefaultHandler()){
布尔getChars=false;
public void startElement(字符串uri、字符串名称、字符串qName、属性属性属性)引发SAXException{
如果(“id1.equalsIgnoreCase(qName))getChars=true;
如果(“id2.equalsIgnoreCase(qName))getChars=true;
}
公共无效字符(char cs[],int start,int len)引发异常{
if(getChars){
add(新字符串(cs,start,len));
getChars=false;
}
}
});
返回ID;
}
使用SAX解析器,将“id1”开始元素之后发出的文本存储为id1值,“id2”开始元素之后的文本存储为id2值
例如:
publicstaticlist getid(InputStream xmlStream)抛出ParserConfigurationException、SAXException、IOException{
最终列表ID=新的ArrayList();
SAXParserFactory=SAXParserFactory.newInstance();
SAXParser SAXParser=factory.newSAXParser();
parse(xmlStream,新的DefaultHandler()){
布尔getChars=false;
public void startElement(字符串uri、字符串名称、字符串qName、属性属性属性)引发SAXException{
如果(“id1.equalsIgnoreCase(qName))getChars=true;
如果(“id2.equalsIgnoreCase(qName))getChars=true;
}
公共无效字符(char cs[],int start,int len)引发异常{
if(getChars){
add(新字符串(cs,start,len));
getChars=false;
}
}
});
返回ID;
}
您可以使用JDOM执行此操作:
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
public class Test {
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("test.xml");
String id1 = doc.getRootElement().getChild("values").getChild("factor").getChild("id1").getValue();
System.out.println(id1);
String id2 = doc.getRootElement().getChild("values").getChild("factor").getChild("id2").getValue();
System.out.println(id2);
}
}
您可以使用JDOM执行此操作:
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
public class Test {
public static void main(String[] args) throws Exception{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("test.xml");
String id1 = doc.getRootElement().getChild("values").getChild("factor").getChild("id1").getValue();
System.out.println(id1);
String id2 = doc.getRootElement().getChild("values").getChild("factor").getChild("id2").getValue();
System.out.println(id2);
}
}
如果您感兴趣的是查询某些元素,那么您的朋友是吗如果您感兴趣的是查询某些元素,那么您的朋友是吗