Changeset 12692 in josm for trunk


Ignore:
Timestamp:
2017-08-28T22:01:42+02:00 (7 years ago)
Author:
Don-vip
Message:

fix #14704 - properly encode strings

Location:
trunk/src/org/openstreetmap/josm/io
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/OsmWriter.java

    r12019 r12692  
    205205    }
    206206
     207    void writeLatLon(LatLon ll) {
     208        if (ll != null) {
     209            out.print(" lat='"+LatLon.cDdHighPecisionFormatter.format(ll.lat())+
     210                     "' lon='"+LatLon.cDdHighPecisionFormatter.format(ll.lon())+'\'');
     211        }
     212    }
     213
    207214    @Override
    208215    public void visit(INode n) {
     
    212219            out.println("/>");
    213220        } else {
    214             if (n.getCoor() != null) {
    215                 out.print(" lat='"+LatLon.cDdHighPecisionFormatter.format(n.getCoor().lat())+
    216                           "' lon='"+LatLon.cDdHighPecisionFormatter.format(n.getCoor().lon())+'\'');
    217             }
     221            writeLatLon(n.getCoor());
    218222            addTags(n, "node", true);
    219223        }
  • trunk/src/org/openstreetmap/josm/io/ValidatorErrorWriter.java

    r12668 r12692  
    6565        String timestamp = DateUtils.fromDate(new Date());
    6666
    67         out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    68         out.println("<analysers generator='JOSM' timestamp=\""+timestamp+"\">");
     67        out.println("<?xml version='1.0' encoding='UTF-8'?>");
     68        out.println("<analysers generator='JOSM' timestamp='"+timestamp+"'>");
    6969
    7070        OsmWriter osmWriter = OsmWriterFactory.createOsmWriter(out, true, OsmChangeBuilder.DEFAULT_API_VERSION);
     
    7272
    7373        for (Test test : analysers) {
    74             out.println("  <analyser timestamp=\""+timestamp+"\" name=\""+test.getName()+"\">");
     74            out.println("  <analyser timestamp='"+timestamp+"' name='"+XmlWriter.encode(test.getName())+"'>");
    7575            // Build map of test error classes for the current test
    7676            Map<ErrorClass, List<TestError>> map = new HashMap<>();
     
    8989            // Write classes
    9090            for (ErrorClass ec : map.keySet()) {
    91                 out.println("    <class id=\""+ec.id+"\" level=\""+ec.severity.getLevel()+"\">");
    92                 out.println("      <classtext lang=\""+lang+"\" title=\""+ec.message+"\"/>");
     91                out.println("    <class id='"+ec.id+"' level='"+ec.severity.getLevel()+"'>");
     92                out.println("      <classtext lang='"+XmlWriter.encode(lang)+"' title='"+XmlWriter.encode(ec.message)+"'/>");
    9393                out.println("    </class>");
    9494            }
     
    9898                for (TestError error : entry.getValue()) {
    9999                    LatLon ll = error.getPrimitives().iterator().next().getBBox().getCenter();
    100                     out.println("    <error class=\""+entry.getKey().id+"\">");
    101                     out.println("      <location lat=\""+ll.lat()+"\" lon=\""+ll.lon()+"\">");
     100                    out.println("    <error class='"+entry.getKey().id+"'>");
     101                    out.print("      <location");
     102                    osmWriter.writeLatLon(ll);
     103                    out.println(">");
    102104                    for (OsmPrimitive p : error.getPrimitives()) {
    103105                        p.accept(osmWriter);
    104106                    }
    105                     out.println("      <text lang=\""+lang+"\" value=\""+error.getDescription()+"\">");
     107                    out.println("      <text lang='"+XmlWriter.encode(lang)+"' value='"+XmlWriter.encode(error.getDescription())+"'>");
    106108                    if (error.isFixable()) {
    107109                        out.println("      <fixes>");
Note: See TracChangeset for help on using the changeset viewer.