【发布时间】:2015-12-09 22:58:25
【问题描述】:
我正在尝试在 Android 中创建 GPX 文件,但不知道如何创建具有值的元素,例如以下 sn-p 中的 <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 个点。 有什么想法吗?
【问题讨论】: