如果你使用的是Java 8,你應該看看我的unXml-library。它是開源的,可在Maven Central上找到。
此代碼將工作項目
import com.nerdforge.unxml.Parsing;
import com.nerdforge.unxml.factory.ParsingFactory;
import org.w3c.dom.Document;
import java.util.List;
public class Parser {
public ObjectNode parseXml(String xml){
Parsing parsing = ParsingFactory.getInstance().create();
Document document = parsing.xml().document(xml);
Parser<ObjectNode> parser = parsing.obj("Details")
.attribute("Records", parsing.obj("Records")
.attribute("name", parsing.obj("name")
.attribute("@id", "@id")
.attribute("#text", "text()")
)
.attribute("age", "age")
.attribute("gender", parsing.obj("gender")
.attribute("@type", "@type")
)
)
.build();
ObjectNode result = parser.apply(document);
return result;
}
}
請注意,這個庫的整點,是從使用的XPath個XML提取值,並將其分配給在JSON對象屬性。所以你可以創建「更好的」Json,它不受xml結構的約束。
例
public class Parser {
public ArrayNode parseXml(String xml){
Parsing parsing = ParsingFactory.getInstance().create();
Document document = parsing.xml().document(xml);
Parser<ArrayNode> parser = parsing.arr("//Records", parsing.obj()
.attribute("id", "name/@id", parsing.number())
.attribute("name") // name is both the xpath, and json-attribute key
.attribute("age", "age", parsing.number())
.attribute("gender", "gender/@type")
).build();
ArrayNode result = parser.apply(document);
return result;
}
}
將返回的JSON
[{
id: 123,
name: "xyz",
age: 25,
gender: "male"
}]
使用parsing.arr("<xpath>", ...)
創建數組。
你有密碼嗎? – Rehman
你有什麼嘗試?你想使用什麼工具/庫?你的問題現在太不明確 - 有很多方法可以做到這一點。 –
請按照下面的網址, [1] [1] [使用Javascript,jQuery的XML轉換到的JSONObject]:http://stackoverflow.com/questions/20679135/convert-xml-to-jsonobject -using-javascript-jquery –