xml转换NameValuePair
时间: 2023-12-29 22:04:57 浏览: 27
XML数据可以通过解析XML文档来转换为NameValuePair格式。NameValuePair是HTTP请求中常用的一种数据格式,它由键值对组成,每个键值对都是一个NameValuePair对象。以下是Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.message.BasicNameValuePair;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class XmlToNameValuePair {
public static void main(String[] args) throws Exception {
String xml = "<root><name>Tom</name><age>20</age></root>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xml);
NodeList nodeList = doc.getDocumentElement().getChildNodes();
List<NameValuePair> params = new ArrayList<>();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element elem = (Element) node;
String name = elem.getNodeName();
String value = elem.getTextContent();
params.add(new BasicNameValuePair(name, value));
}
}
String query = URLEncodedUtils.format(params, "UTF-8");
System.out.println(query);
}
}
```
在上面的代码中,我们首先定义了一个XML字符串,然后使用Java自带的DOM解析器将XML文档解析为一个Document对象。我们遍历了XML节点中的每一个元素,将元素的名称和值分别作为NameValuePair对象的键和值,并将NameValuePair对象添加到一个列表中。最后,我们使用Apache HttpClient库中的URLEncodedUtils类来将NameValuePair列表格式化为一个字符串。