2015-09-14 52 views
1

我想在Android中創建一個GPX文件,並且無法找到如何使用值創建元素,如以下代碼片段中的<ele> or <time>元素。在Android Java中創建GPX XML

<trkpt lat="-33.626932" lon="151.306745"> 
    <time>2015-09-12T03:25:00.000Z</time> 
    <ele>-6</ele> 
    </trkpt> 

在PHP中,我可以用一個價值創造的元素,如:

$xml = new DOMDocument("1.0"); 
$trkpt = $xml->createElement("trkpt"); 
$trkpt->appendChild($xml->createElement("ele","-6")); 

,但對我的生活,我無法找到Java中的等價物。 我已經試過(刪除的try /爲了清晰捕捉):

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder parser = factory.newDocumentBuilder(); 
Document xml = parser.newDocument(); 
Element trkpt = xml.createElement("trkpt"); 
trkpt.setAttribute("lat", "-33.626932"); 
trkpt.setAttribute("lon","151.306745"); 
Attr ele = xml.createAttribute("ele"); 
ele.setNodeValue("-6"); 
trkpt.setAttributeNode(ele); 

但創建:

<trkpt lat="-33.626932" lon="151.306745" ele="-6"> 

這是不正確的語法GPX。 我想避免從頭開始構建字符串,因爲我的文件可能非常大,40,000點。 任何想法?

回答

0

相反的:

Attr ele = xml.createAttribute("ele"); 
    ele.setNodeValue("-6"); 
    trkpt.setAttributeNode(ele); 

嘗試:

Element ele = xml.createElement("ele"); 
    ele.appendChild(xml.createTextNode("-6"));   
    trkpt.appendChild(ele); 
0

OK,它看起來醜陋,但這裏的答案。我必須添加文本節點到<ele>元素:

Element ele = xml.createElement("ele"); 
ele.appendChild(xml.createTextNode("-6")); 
trkpt.appendChild(ele);