0
我需要解析XML文件存儲的值到數據庫中的同一節點名稱的xml文件節點的XML數.. 請考慮下面的XML獲取與使用DOM
<Name NameType="Primary Name">
<NameValue>
<FirstName>Hassan</FirstName>
<MiddleName>Dahir</MiddleName>
<Surname>Aweys</Surname>
<OriginalScriptName>حسن ظاهرعويس</OriginalScriptName>
<OriginalScriptName>ハッサン・ダヒル・アウェイス</OriginalScriptName>
<OriginalScriptName>アウェス、ハッサン・ダヒル</OriginalScriptName>
<OriginalScriptName>ウワイス、ハッサン・ターヒル</OriginalScriptName>
</NameValue>
</Name>
使用DOM解析,解析XML並獲取值。
private static HashMap<String, String> nameDetails(Element nameDetails,String id) throws SQLException {
HashMap<String, String> Map = new HashMap<String, String>();
Multimap<String, String> multiMap = ArrayListMultimap.create();
String pid = null;
Map.put(pid, id);
if(nameDetails.hasChildNodes()){
//System.out.println(nameDetails.getChildNodes().getLength());
for(int i=0;i<nameDetails.getChildNodes().getLength();i++){
//check "Name" has attributes or not
if(nameDetails.getChildNodes().item(i).hasAttributes())
{
for(int a=0;a<nameDetails.getChildNodes().item(i).getAttributes().getLength();a++)
{
//Name Type values or attributes of Name
Map.put(nameDetails.getChildNodes().item(i).getAttributes().item(a).getNodeName(),nameDetails.getChildNodes().item(i).getAttributes().item(a).getNodeValue());
}
}
//check "Name" has child nodes are not
if(nameDetails.getChildNodes().item(i).hasChildNodes())
{
String d =null;
//No of child nodes "Name" Has that is no. of NameValue
for (int a=0;a<nameDetails.getChildNodes().item(i).getChildNodes().getLength();a++)
{
//No.of Childs Nodes NameValue has that is fName,lName,etc,.
for(int b=0;b<nameDetails.getChildNodes().item(i).getChildNodes().item(a).getChildNodes().getLength();b++)
{ Map.put(nameDetails.getChildNodes().item(i).getChildNodes().item(a).getChildNodes().item(b).getNodeName(),nameDetails.getChildNodes().item(i).getChildNodes().item(a).getChildNodes().item(b).getChildNodes().item(0).getNodeValue());
} StringClass.setValuesToDB(nameDetails.getNodeName(), Map);
}
}
}
}
return Map;
}
在這種情況下
現在的問題是我們需要存儲的
<OriginalScriptName>حسن ظاهرعويس</OriginalScriptName>
<OriginalScriptName>ハッサン・ダヒル・アウェイス</OriginalScriptName>
<OriginalScriptName>アウェス、ハッサン・ダヒル</OriginalScriptName>
<OriginalScriptName>ウワイス、ハッサン・ターヒル</OriginalScriptName>
多個值成逗號
حسن ظاهرعويس,ハッサン・ダヒル・アウェイス,アウェス、ハッサン・ダヒル,ウワイス、ハッサン・ターヒル
分成map.so,我們可以得到價值事務所映射值,同時插入數據庫。
Map.get("OriginalScriptName","حسن ظاهرعويس,ハッサン・ダヒル・アウェイス,アウェス、ハッサン・ダヒル,ウワイス、ハッサン・ターヒル")
i.e., Map.get("OriginalScriptName",value)
let value = ,ハッサン・ダヒル・アウェイス,アウェス、ハッサン・ダヒル,ウワイス、ハッサン・ターヒル
是否工作...... – barun