在Android Java中创建GPX XML

时间:2015-09-14 02:03:28

标签: android xml gpx

我正在尝试在Android中创建GPX文件,并且无法解决如何使用值创建元素,例如以下代码段中的<ele> or <time>元素。

  <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 / catch):

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点。 有什么想法吗?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

好吧,它看起来很难看,但这就是答案。我必须在<ele>元素中添加一个文本节点:

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