关闭时将节点属性保留为空

时间:2016-07-19 20:51:40

标签: r overpass-api xml2

我正在使用R的xml2包向OverpassAPI写一个查询,这不是严格意义上的xml,但肯定会像它一样。

但是,我有一个问题,xml2包在打开和关闭时写入节点属性。

# build xml object for osm query
script <- xml2::xml_new_document() %>%
  xml2::xml_add_child("osm-script")

union <- xml2::xml_add_child(script, 'union into="_"')
query <- xml2::xml_add_child(union, 'query type="way"')
script
{xml_document}
<osm-script>
[1] <union into="_">\n  <query type="way"/>\n</union into="_">

into="_"属性位于节点的打开和关闭状态;我对xml并不是很熟悉,但是在Overpass中有这个属性会导致查询失败。

有没有办法抑制这种行为?

1 个答案:

答案 0 :(得分:1)

出乎意料的是,xml2比其他xml库更聪明。事实证明,您不需要在节点创建中添加完整的属性字符串......

script <- xml2::xml_new_document() %>%
  xml2::xml_add_child("osm-script")
union <- xml2::xml_add_child(script, "union", into = "_")
query <- xml2::xml_add_child(union, "query", type = "way")
script
#> {xml_document}
#> <osm-script>
#> [1] <union into="_">\n  <query type="way"/>\n</union>

感谢Jim Hester在xml2 issues page