# Java 将 XML 转换为属性 – 从 XML 文件读取属性

> 原文： [https://howtodoinjava.com/xml/convert-xml-to-properties/](https://howtodoinjava.com/xml/convert-xml-to-properties/)

Java 示例**从 XML 文件**创建`.properties`文件。 此代码可用于**从 XML** 文件读取属性键值，以在应用代码中使用。

## XML 示例的属性

要将 XML 文件转换为属性文件，最好的方法是使用`java.util.Properties`类。 流程是：

1.  使用[`Properties.loadFromXML()`](https://docs.oracle.com/javase/10/docs/api/java/util/Properties.html#loadFromXML(java.io.InputStream))方法将 XML 文件加载到`java.util.Properties`类对象中。
2.  使用[`Properties.store()`](https://docs.oracle.com/javase/10/docs/api/java/util/Properties.html#store(java.io.OutputStream,java.lang.String))方法将内容写为属性。

```java
package com.howtodoinjava.demo;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.InvalidPropertiesFormatException;
import java.util.Properties;

public class XMLToProperties 
{
	public static void main(String[] args) throws InvalidPropertiesFormatException, IOException 
	{
		String outPropertiesFile = "application.properties";
		String inXmlFile = "applicationProperties.xml";

		InputStream inStream = new FileInputStream(inXmlFile);			//Input XML File
		OutputStream outStream = new FileOutputStream(outPropertiesFile);	//Output properties File

		Properties props = new Properties();

		//Load XML file
		props.loadFromXML(inStream);

		//Store to properties file
		props.store(outStream, "Converted from applicationProperties.xml");

		//Use properties in code
		System.out.println(props.get("input.dir"));			//Prints 'c:/temp/input'
	}
}

```

#### 输入 XML 文件

```java
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>application.properties</comment>
	<entry key="input.dir">c:/temp/input</entry>
	<entry key="spring.batch.job.enabled">false</entry>
	<entry key="spring.main.banner-mode">off</entry>
</properties>

```

#### 输出属性文件

```java
#Converted from applicationProperties.xml
#Mon Jul 23 18:15:00 IST 2018

spring.batch.job.enabled=false
input.dir=c\:/temp/input
spring.main.banner-mode=off

```

将我的问题放在评论部分。

学习愉快！