我正在尝试在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点。 有什么想法吗?
答案 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);