Java 从XML文件中拆分字符串的步骤
我正在阅读一个xml文件,其中包含一个类的许多对象的属性;我使用的是DOM xml解析器;在这个类中还有一个数组字段(NEARBOXID),所以我想知道从xml文件中像单个字符串一样读取它然后拆分它的内容是一种好方法,还是有更好的方法 文件如下所示:Java 从XML文件中拆分字符串的步骤,java,xml,Java,Xml,我正在阅读一个xml文件,其中包含一个类的许多对象的属性;我使用的是DOM xml解析器;在这个类中还有一个数组字段(NEARBOXID),所以我想知道从xml文件中像单个字符串一样读取它然后拆分它的内容是一种好方法,还是有更好的方法 文件如下所示: <CONFIGURATION> <CONFIG> <BOXID>1</BOXID> <LENGTH>100</LENGTH> <NEARBOX
<CONFIGURATION>
<CONFIG>
<BOXID>1</BOXID>
<LENGTH>100</LENGTH>
<NEARBOXID>2,3,4,5</NEARBOXID>
</CONFIG>
<CONFIG>
<BOXID>2</BOXID>
<LENGTH>200</LENGTH>
<NEARBOXID>1,8</NEARBOXID>
</CONFIG>
1.
100
2,3,4,5
2.
200
1,8
您应该读取为字符串并将其拆分。使用循环将数字转换为整数使用ParseInt
您应该读取为字符串并将其拆分。使用循环将数字转换为整数使用ParseInt
否,由您分割该字段。该方法可以很好地完成任务。不,由您来分割该字段。该方法很好。您需要使用提取所需标记内的完整数据,然后使用,以从完整字符串中获取所需值。您需要使用提取所需标记内的完整数据,然后使用,从整个字符串中获取所需的值。我认为这是一个选择问题。您可以这样使用它:
<NEARBOXID>2,3,4,5</NEARBOXID>
2,3,4,5
或者你这样使用它:
<NEARBOXID>2</NEARBOXID>
<NEARBOXID>3</NEARBOXID>
<NEARBOXID>4</NEARBOXID>
<NEARBOXID>5</NEARBOXID>
2
3.
4.
5.
第二种方法要求您使用与第一种不同的解析代码,但您可以在拆分和处理字符串时保存一些代码。我认为这是一个选择问题。您可以这样使用它:
<NEARBOXID>2,3,4,5</NEARBOXID>
2,3,4,5
或者你这样使用它:
<NEARBOXID>2</NEARBOXID>
<NEARBOXID>3</NEARBOXID>
<NEARBOXID>4</NEARBOXID>
<NEARBOXID>5</NEARBOXID>
2
3.
4.
5.
第二种方法要求您拥有与第一种不同的解析代码,但您可以保存一些关于拆分和处理字符串的代码。将数据提取为字符串并对其执行split() 更好的方法是在单个标记中维护,如
<NEARBOXID>2</NEARBOXID>
<NEARBOXID>3</NEARBOXID>
<NEARBOXID>4</NEARBOXID>
<NEARBOXID>5</NEARBOXID>
2
3.
4.
5.
要解析xml查询,可以根据需要使用XPath、XQuery或JAXB。将数据提取为字符串并对其执行split() 更好的方法是在单个标记中维护,如
<NEARBOXID>2</NEARBOXID>
<NEARBOXID>3</NEARBOXID>
<NEARBOXID>4</NEARBOXID>
<NEARBOXID>5</NEARBOXID>
2
3.
4.
5.
为了解析xml查询,您可以根据需要使用XPath、XQuery或JAXB。因为您正在将xml转换为Java对象,所以我将演示如何使用实现来完成这项工作。从JavaSE6开始,JDK/JRE中包含了JAXB实现 我建议将
NEARBOXID
元素的内容更改为空格分隔
<NEARBOXID>2 3 4 5</NEARBOXID>
配置
下面的对象将映射到XML文档的根
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="CONFIGURATION")
@XmlAccessorType(XmlAccessType.FIELD)
public class Configuration {
@XmlElement(name="CONFIG")
private List<Config> configs;
}
input.xml/Output
下面是运行演示代码的输入和输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CONFIGURATION>
<CONFIG>
<BOXID>1</BOXID>
<LENGTH>100</LENGTH>
<NEARBOXID>2 3 4 5</NEARBOXID>
</CONFIG>
<CONFIG>
<BOXID>2</BOXID>
<LENGTH>200</LENGTH>
<NEARBOXID>1 8</NEARBOXID>
</CONFIG>
</CONFIGURATION>
1.
100
2 3 4 5
2.
200
1 8
既然您正在将XML转换为Java对象,我将演示如何使用一个实现来实现这一点。从JavaSE6开始,JDK/JRE中包含了JAXB实现
我建议将NEARBOXID
元素的内容更改为空格分隔
<NEARBOXID>2 3 4 5</NEARBOXID>
配置
下面的对象将映射到XML文档的根
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="CONFIGURATION")
@XmlAccessorType(XmlAccessType.FIELD)
public class Configuration {
@XmlElement(name="CONFIG")
private List<Config> configs;
}
input.xml/Output
下面是运行演示代码的输入和输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CONFIGURATION>
<CONFIG>
<BOXID>1</BOXID>
<LENGTH>100</LENGTH>
<NEARBOXID>2 3 4 5</NEARBOXID>
</CONFIG>
<CONFIG>
<BOXID>2</BOXID>
<LENGTH>200</LENGTH>
<NEARBOXID>1 8</NEARBOXID>
</CONFIG>
</CONFIGURATION>
1.
100
2 3 4 5
2.
200
1 8
好的,谢谢!这是我第一次使用xml,所以我想写我所知道的最好的代码,谢谢!这是我第一次使用xml,所以我想写我所知道的最好的代码,谢谢!这是我第一次使用xml,所以我想写我所知道的最好的代码,谢谢!这是我使用xml的第一种方法,因此我想用JAXB编写我能写的最好的代码。您还可以使用@xmlsist
注释处理空间分隔值:使用JAXB,您还可以使用@xmlsist
注释处理空间分隔值: