Giter VIP home page Giter VIP logo

go-xmldom's People

Contributors

fkollmann avatar rodion-bozhenko avatar subchen avatar tebruno99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

go-xmldom's Issues

Update XML example please

go-xmldom is able to "Update XML using dom", so is it possible to locate an xml node via xapth then edit/modify the content/attributes?

If so, an working example would be appreciated. Thx.

Array access with negative index

In go-xmldom/node.go (master branch), function PrevSibling(), there's:

if i >= 0 {
  return n.Parent.Children[i-1]
}

The >= should probably be >.

Parsing CDATA does not work

I was parsing a XML file that contains CData sections and got empty strings. After a little digging I found the error. It seems that the underlying xml package produces multiple xml.CharData-Tokens for a node if it contains CData.
Replacing

e.Text = string(bytes.TrimSpace(token))

with

e.Text += string(bytes.TrimSpace(token))

fixes the error.

Additionally I wrote a test case for this issue.

func TestParseCData(t *testing.T) {
	doc, err := xmldom.ParseXML(`
	<r>
	<![CDATA[
		Hello World!
	]]>
	</r>
	`)
	if err != nil {
		t.Fail()
	}
	if doc.Root.Text != "Hello World!" {
		t.Errorf(`got "%s", expected "Hello World!"`, doc.Root.Text)
	}
}

Bug, attribute name "prefixes" are dropped

Reading this XML file (an SVG) and then simply resaving it will write invalid characters in the CSS part.

The error that chrome gives on trying to read this SVG

This page contains the following errors:
error on line 2 at column 457: Attribute version redefined
Below is a rendering of the page up to the first error.

Line 2:
original

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   id="Logo"
   width="2139"
   height="2139"
   viewBox="0 0 2139 2139"
   version="1.1"
   sodipodi:docname="siknas07-alt03.svg"
   inkscape:version="0.92.1 r15371"
   inkscape:label="Cirkel">

rewritten file

<svg dc="http://purl.org/dc/elements/1.1/" cc="http://creativecommons.org/ns#" rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" inkscape="http://www.inkscape.org/namespaces/inkscape" id="Logo" width="2139" height="2139" viewBox="0 0 2139 2139" version="1.1" docname="siknas07-alt03.svg" version="0.92.1 r15371" label="Cirkel">

Seems like all prefixes are dropped from the attribute names, resulting in duplicate version:

version="1.1"
inkscape:version="0.92.1 r15371"

Becomes

version="1.1"
version="0.92.1 r15371"

Small program to reproduce this:

package main

import (
	"fmt"
	xmldom "github.com/subchen/go-xmldom"
)

var svgData = `
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   id="Logo"
   width="2139"
   height="2139"
   viewBox="0 0 2139 2139"
   version="1.1"
   sodipodi:docname="siknas07-alt03.svg"
   inkscape:version="0.92.1 r15371"
   inkscape:label="Cirkel">
  <metadata
     id="metadata30">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1280"
     inkscape:window-height="961"
     id="namedview28"
     showgrid="false"
     inkscape:zoom="0.15603291"
     inkscape:cx="160.60893"
     inkscape:cy="1292.5084"
     inkscape:window-x="-8"
     inkscape:window-y="616"
     inkscape:window-maximized="1"
     inkscape:current-layer="g4553" />
  <defs
     id="defs4">
    <style
       id="style2">
      .cls-1 {
        fill: #35462d;
      }

      .cls-1, .cls-2, .cls-3, .cls-5 {
        fill-rule: evenodd;
      }

      .cls-2, .cls-5 {
        fill: none;
        stroke-width: 20px;
      }

      .cls-2 {
        stroke: #90a3bc;
      }

      .cls-3 {
        fill: #90a3bc;
      }

      .cls-4 {
        opacity: 0.08;
        mix-blend-mode: difference;
      }

      .cls-5 {
        stroke: #296d69;
      }
    </style>
    <clipPath
       clipPathUnits="userSpaceOnUse"
       id="clipPath4562">
      <circle
         cx="1069.5"
         cy="1069.5"
         r="1069.5"
         id="circle4564" />
    </clipPath>
    <clipPath clipPathUnits="userSpaceOnUse" id="SiknasClipPath">
      <path
         id="iknäs_road_as_shape"
         data-name="iknäs road as shape"
         class="cls-1"
         d="m 904.1,808.61 q 3.732,-10.218 -1.036,-24.787 -5.137,-15.688 -13.775,-20.719 -8.638,-5.031 -20.777,-1.055 a 32.915,32.915 0 0 0 -9.84,4.98 19.527,19.527 0 0 0 -6.038,7.56 24.406,24.406 0 0 0 -1.859,10.742 52.626,52.626 0 0 0 2.918,14.658 q 4.953,15.129 14.078,20.827 9.125,5.698 20.455,1.988 12.136,-3.975 15.874,-14.194 z m 59.183,315.12 40.952,-13.41 -84.217,-257.188 -40.954,13.41 z m 84.282,-27.85 40.19,-15.55 -48.455,-125.185 1.27,-0.492 94.52,107.357 40.98,-15.87 -106.21,-116.313 3.92,-134.282 -38.6,14.94 -0.92,127.856 -1.28,0.491 -74.268,-191.9 -40.188,15.555 z m 148.23,-59.63 40.51,-14.69 -74.62,-205.823 a 44.962,44.962 0 0 1 6.02,-16.61 q 4.335,-6.793 10.42,-9 8.64,-3.135 15.51,1.8 6.87,4.935 12.96,21.747 l 70.06,193.259 40.52,-14.683 -70.685,-194.93 q -11.31,-31.223 -27.46,-43.035 -16.15,-11.812 -35.53,-4.785 a 55.687,55.687 0 0 0 -11.71,5.92 46.331,46.331 0 0 0 -10.28,9.371 56.856,56.856 0 0 0 -8.07,13.482 74.758,74.758 0 0 0 -5.07,18.249 l -0.07,-0.185 -13.53,-25.825 -31.22,11.321 z m 222.33,-77.036 a 56.041,56.041 0 0 0 13.01,-23.121 l 9.07,21.559 30.89,-8.451 -53.485,-195.441 a 152.848,152.848 0 0 0 -10.96,-29.4 q -6.225,-12.147 -15.22,-18.859 a 41.677,41.677 0 0 0 -21.33,-7.918 q -12.345,-1.207 -29.26,3.423 a 72.8,72.8 0 0 0 -22.76,10.4 53.056,53.056 0 0 0 -15.51,16.571 53.964,53.964 0 0 0 -7.02,22.094 q -1.29,12.378 2.7,26.972 a 106.08,106.08 0 0 0 4.09,12.024 q 2.415,5.961 5.92,12.947 l 31.71,-8.676 -3.11,-11.374 a 82.293,82.293 0 0 1 -3.25,-19.284 37.625,37.625 0 0 1 1.78,-13.525 19.061,19.061 0 0 1 5.63,-8.469 21.489,21.489 0 0 1 8.1,-4.256 q 6.57,-1.8 11.1,-0.083 a 17.187,17.187 0 0 1 7.75,6.032 40.851,40.851 0 0 1 5.49,10.722 q 2.28,6.4 4.36,13.987 l 9.44,34.5 q -5.355,4.322 -12.14,10.149 -6.785,5.827 -12.05,11.142 a 160.833,160.833 0 0 0 -18.56,21.888 88.407,88.407 0 0 0 -11.51,22.817 81.212,81.212 0 0 0 -3.93,25.323 112.178,112.178 0 0 0 4.38,29.568 106.22,106.22 0 0 0 9.7,24.141 65.08,65.08 0 0 0 13.88,17.5 44.2,44.2 0 0 0 17.33,9.42 37.074,37.074 0 0 0 19.96,-0.268 49.405,49.405 0 0 0 23.8,-14.054 z m -34.26,-32.6 q -7.59,-7.7 -11.68,-22.681 a 71.891,71.891 0 0 1 -2.75,-18.1 65.4,65.4 0 0 1 1.56,-15.607 52.613,52.613 0 0 1 4.68,-12.895 64.545,64.545 0 0 1 6.58,-10.155 71.8,71.8 0 0 1 7.37,-7.925 q 3.525,-3.207 6.41,-5.624 l 22.35,81.7 a 32.461,32.461 0 0 1 -6.36,9.992 19.884,19.884 0 0 1 -9.41,5.938 q -11.18,3.063 -18.755,-4.643 z m -5.08,-279.9 q 3.06,-9.494 -0.94,-24.092 -4.56,-16.678 -11.97,-23.11 -7.41,-6.432 -20.88,-2.742 a 26.652,26.652 0 0 0 -10.3,4.958 16.254,16.254 0 0 0 -5.16,7.931 29.491,29.491 0 0 0 -0.84,11.131 87.189,87.189 0 0 0 2.82,14.51 q 4.215,15.354 11.07,21.728 6.87,6.374 19.68,2.867 13.465,-3.686 16.515,-13.181 z m -71.87,19.668 q 2.97,-9.472 -1.02,-24.069 -4.575,-16.68 -11.9,-23.133 -7.325,-6.453 -20.8,-2.765 a 27.308,27.308 0 0 0 -10.38,4.98 16.259,16.259 0 0 0 -5.24,7.955 29.487,29.487 0 0 0 -0.84,11.13 86.253,86.253 0 0 0 2.83,14.51 q 4.2,15.354 11.14,21.706 6.94,6.352 19.77,2.844 13.465,-3.686 16.435,-13.158 z M 1480.48,912.37 a 47.58,47.58 0 0 0 11.8,18.564 45.4,45.4 0 0 0 17.89,10.306 78.408,78.408 0 0 0 22.1,3.395 67.4,67.4 0 0 0 25.53,-4.118 51.893,51.893 0 0 0 19.02,-12.476 54.023,54.023 0 0 0 11.89,-19.763 86.733,86.733 0 0 0 1.62,-48.623 121.75,121.75 0 0 0 -7.18,-20.064 150.694,150.694 0 0 0 -9.1,-16.851 q -4.815,-7.639 -8.48,-13.008 l -33.67,-47.115 a 136.59,136.59 0 0 1 -10.11,-17.653 39.407,39.407 0 0 1 -3.64,-17.551 37.627,37.627 0 0 1 1.07,-8.435 21.217,21.217 0 0 1 3.35,-7.416 17.408,17.408 0 0 1 6.13,-5.309 19.23,19.23 0 0 1 9.4,-1.916 q 6.465,0.1 10.42,3.506 3.955,3.406 6.15,10.023 a 69.032,69.032 0 0 1 2.88,16.655 q 0.705,10.035 0.66,23.4 l 29.8,0.47 q 1.455,-6.265 3.05,-15.087 a 112.855,112.855 0 0 0 1.74,-18.252 70.1,70.1 0 0 0 -3.54,-24.527 45.556,45.556 0 0 0 -28.33,-28.653 70.055,70.055 0 0 0 -22.94,-3.9 64.538,64.538 0 0 0 -22.03,3.387 50.752,50.752 0 0 0 -18.49,11.109 55,55 0 0 0 -12.9,19.059 q -4.875,11.523 -5.12,27.241 a 92.619,92.619 0 0 0 2.29,22.443 122.454,122.454 0 0 0 6.66,20.449 155.19,155.19 0 0 0 9.75,19.024 q 5.565,9.227 11.56,18.166 l 30.83,43.336 q 3.33,4.968 5.99,9.136 a 64.23,64.23 0 0 1 4.47,8.228 47.483,47.483 0 0 1 2.77,8 32.951,32.951 0 0 1 0.89,8.27 24.629,24.629 0 0 1 -4.66,14.48 q -4.53,6.222 -14.23,6.066 a 25.158,25.158 0 0 1 -11.8,-2.741 18.184,18.184 0 0 1 -7.62,-8.572 q -2.8,-5.942 -3.92,-15.885 a 198.739,198.739 0 0 1 -0.89,-24.682 L 1481.23,854 q -1.44,4.893 -3.02,13.122 a 99.7,99.7 0 0 0 -1.72,17.073 q -0.255,16.705 3.99,28.175 z"
         inkscape:connector-curvature="0"
         style="fill:white;fill-rule:evenodd"
         inkscape:label="iknas_road_as_shape" />
      <path
         id="S"
         class="cls-1"
         d="M 661,849 C 618.416,814.218 620.075,800.549 617.744,760.319 615.59,723.194 642.626,732.35 667,703 c 18.962,-22.823 48.112,-24.326 77,-26 28.888,-1.674 35.529,7.521 57,28 30.667,29.274 28.895,30.868 58,44 l 65,-67 c -38.59,-77.882 -38.651,-37.471 -77,-77 -34.715,-35.784 -47.193,-56.336 -63,-50 -48.34,19.375 -107.174,46.143 -209,84 -61.446,23.022 -50.847,54.11 -44,122 6.832,67.906 -20.549,110.465 28,148 66.762,52.005 134.961,19.438 183,95 43.438,68.71 28.032,64.69 48,104 28.705,56.52 0.026,38.78 -27,92 -15.369,30.25 -23.8,87.32 -70,90 -34.661,2.01 -39.567,3.98 -75,-19 -36.04,-23.34 -47.371,-22.43 -99,-37 l -91,21 c -22.616,10.91 6.105,69.9 24,73 l 71,10 c 56.732,29.98 29.707,0.36 78.795,47.18 39.863,38.05 126.483,9.23 192.205,-13.18 58.945,-20.1 56.281,-70.5 84,-123 30.019,-56.87 18.439,-33.54 17,-111 -1.831,-98.56 -22.859,-168.984 -81,-208 -58.967,-39.979 -65.008,-5 -128.884,-57.172 z"
         inkscape:connector-curvature="0"
         style="fill:white;fill-rule:evenodd" />
      </clipPath>
  </defs>
  <g
     id="g4553"
     inkscape:label="Logo"
     clip-path="url(#clipPath4562)">
    <rect
       inkscape:label="Background"
       y="0"
       x="0"
       height="2151.8179"
       width="2161.4312"
       id="rect3713"
       style="opacity:1;fill:#57744a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:7.55905533;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
    <g
       id="Siknas"
       inkscape:label="Siknas">
      <path
         id="iknäs_road_as_shape"
         data-name="iknäs road as shape"
         class="cls-1"
         d="m 904.1,808.61 q 3.732,-10.218 -1.036,-24.787 -5.137,-15.688 -13.775,-20.719 -8.638,-5.031 -20.777,-1.055 a 32.915,32.915 0 0 0 -9.84,4.98 19.527,19.527 0 0 0 -6.038,7.56 24.406,24.406 0 0 0 -1.859,10.742 52.626,52.626 0 0 0 2.918,14.658 q 4.953,15.129 14.078,20.827 9.125,5.698 20.455,1.988 12.136,-3.975 15.874,-14.194 z m 59.183,315.12 40.952,-13.41 -84.217,-257.188 -40.954,13.41 z m 84.282,-27.85 40.19,-15.55 -48.455,-125.185 1.27,-0.492 94.52,107.357 40.98,-15.87 -106.21,-116.313 3.92,-134.282 -38.6,14.94 -0.92,127.856 -1.28,0.491 -74.268,-191.9 -40.188,15.555 z m 148.23,-59.63 40.51,-14.69 -74.62,-205.823 a 44.962,44.962 0 0 1 6.02,-16.61 q 4.335,-6.793 10.42,-9 8.64,-3.135 15.51,1.8 6.87,4.935 12.96,21.747 l 70.06,193.259 40.52,-14.683 -70.685,-194.93 q -11.31,-31.223 -27.46,-43.035 -16.15,-11.812 -35.53,-4.785 a 55.687,55.687 0 0 0 -11.71,5.92 46.331,46.331 0 0 0 -10.28,9.371 56.856,56.856 0 0 0 -8.07,13.482 74.758,74.758 0 0 0 -5.07,18.249 l -0.07,-0.185 -13.53,-25.825 -31.22,11.321 z m 222.33,-77.036 a 56.041,56.041 0 0 0 13.01,-23.121 l 9.07,21.559 30.89,-8.451 -53.485,-195.441 a 152.848,152.848 0 0 0 -10.96,-29.4 q -6.225,-12.147 -15.22,-18.859 a 41.677,41.677 0 0 0 -21.33,-7.918 q -12.345,-1.207 -29.26,3.423 a 72.8,72.8 0 0 0 -22.76,10.4 53.056,53.056 0 0 0 -15.51,16.571 53.964,53.964 0 0 0 -7.02,22.094 q -1.29,12.378 2.7,26.972 a 106.08,106.08 0 0 0 4.09,12.024 q 2.415,5.961 5.92,12.947 l 31.71,-8.676 -3.11,-11.374 a 82.293,82.293 0 0 1 -3.25,-19.284 37.625,37.625 0 0 1 1.78,-13.525 19.061,19.061 0 0 1 5.63,-8.469 21.489,21.489 0 0 1 8.1,-4.256 q 6.57,-1.8 11.1,-0.083 a 17.187,17.187 0 0 1 7.75,6.032 40.851,40.851 0 0 1 5.49,10.722 q 2.28,6.4 4.36,13.987 l 9.44,34.5 q -5.355,4.322 -12.14,10.149 -6.785,5.827 -12.05,11.142 a 160.833,160.833 0 0 0 -18.56,21.888 88.407,88.407 0 0 0 -11.51,22.817 81.212,81.212 0 0 0 -3.93,25.323 112.178,112.178 0 0 0 4.38,29.568 106.22,106.22 0 0 0 9.7,24.141 65.08,65.08 0 0 0 13.88,17.5 44.2,44.2 0 0 0 17.33,9.42 37.074,37.074 0 0 0 19.96,-0.268 49.405,49.405 0 0 0 23.8,-14.054 z m -34.26,-32.6 q -7.59,-7.7 -11.68,-22.681 a 71.891,71.891 0 0 1 -2.75,-18.1 65.4,65.4 0 0 1 1.56,-15.607 52.613,52.613 0 0 1 4.68,-12.895 64.545,64.545 0 0 1 6.58,-10.155 71.8,71.8 0 0 1 7.37,-7.925 q 3.525,-3.207 6.41,-5.624 l 22.35,81.7 a 32.461,32.461 0 0 1 -6.36,9.992 19.884,19.884 0 0 1 -9.41,5.938 q -11.18,3.063 -18.755,-4.643 z m -5.08,-279.9 q 3.06,-9.494 -0.94,-24.092 -4.56,-16.678 -11.97,-23.11 -7.41,-6.432 -20.88,-2.742 a 26.652,26.652 0 0 0 -10.3,4.958 16.254,16.254 0 0 0 -5.16,7.931 29.491,29.491 0 0 0 -0.84,11.131 87.189,87.189 0 0 0 2.82,14.51 q 4.215,15.354 11.07,21.728 6.87,6.374 19.68,2.867 13.465,-3.686 16.515,-13.181 z m -71.87,19.668 q 2.97,-9.472 -1.02,-24.069 -4.575,-16.68 -11.9,-23.133 -7.325,-6.453 -20.8,-2.765 a 27.308,27.308 0 0 0 -10.38,4.98 16.259,16.259 0 0 0 -5.24,7.955 29.487,29.487 0 0 0 -0.84,11.13 86.253,86.253 0 0 0 2.83,14.51 q 4.2,15.354 11.14,21.706 6.94,6.352 19.77,2.844 13.465,-3.686 16.435,-13.158 z M 1480.48,912.37 a 47.58,47.58 0 0 0 11.8,18.564 45.4,45.4 0 0 0 17.89,10.306 78.408,78.408 0 0 0 22.1,3.395 67.4,67.4 0 0 0 25.53,-4.118 51.893,51.893 0 0 0 19.02,-12.476 54.023,54.023 0 0 0 11.89,-19.763 86.733,86.733 0 0 0 1.62,-48.623 121.75,121.75 0 0 0 -7.18,-20.064 150.694,150.694 0 0 0 -9.1,-16.851 q -4.815,-7.639 -8.48,-13.008 l -33.67,-47.115 a 136.59,136.59 0 0 1 -10.11,-17.653 39.407,39.407 0 0 1 -3.64,-17.551 37.627,37.627 0 0 1 1.07,-8.435 21.217,21.217 0 0 1 3.35,-7.416 17.408,17.408 0 0 1 6.13,-5.309 19.23,19.23 0 0 1 9.4,-1.916 q 6.465,0.1 10.42,3.506 3.955,3.406 6.15,10.023 a 69.032,69.032 0 0 1 2.88,16.655 q 0.705,10.035 0.66,23.4 l 29.8,0.47 q 1.455,-6.265 3.05,-15.087 a 112.855,112.855 0 0 0 1.74,-18.252 70.1,70.1 0 0 0 -3.54,-24.527 45.556,45.556 0 0 0 -28.33,-28.653 70.055,70.055 0 0 0 -22.94,-3.9 64.538,64.538 0 0 0 -22.03,3.387 50.752,50.752 0 0 0 -18.49,11.109 55,55 0 0 0 -12.9,19.059 q -4.875,11.523 -5.12,27.241 a 92.619,92.619 0 0 0 2.29,22.443 122.454,122.454 0 0 0 6.66,20.449 155.19,155.19 0 0 0 9.75,19.024 q 5.565,9.227 11.56,18.166 l 30.83,43.336 q 3.33,4.968 5.99,9.136 a 64.23,64.23 0 0 1 4.47,8.228 47.483,47.483 0 0 1 2.77,8 32.951,32.951 0 0 1 0.89,8.27 24.629,24.629 0 0 1 -4.66,14.48 q -4.53,6.222 -14.23,6.066 a 25.158,25.158 0 0 1 -11.8,-2.741 18.184,18.184 0 0 1 -7.62,-8.572 q -2.8,-5.942 -3.92,-15.885 a 198.739,198.739 0 0 1 -0.89,-24.682 L 1481.23,854 q -1.44,4.893 -3.02,13.122 a 99.7,99.7 0 0 0 -1.72,17.073 q -0.255,16.705 3.99,28.175 z"
         inkscape:connector-curvature="0"
         style="fill:#35462d;fill-rule:evenodd"
         inkscape:label="iknas_road_as_shape" />
      <path
         id="S"
         class="cls-1"
         d="M 661,849 C 618.416,814.218 620.075,800.549 617.744,760.319 615.59,723.194 642.626,732.35 667,703 c 18.962,-22.823 48.112,-24.326 77,-26 28.888,-1.674 35.529,7.521 57,28 30.667,29.274 28.895,30.868 58,44 l 65,-67 c -38.59,-77.882 -38.651,-37.471 -77,-77 -34.715,-35.784 -47.193,-56.336 -63,-50 -48.34,19.375 -107.174,46.143 -209,84 -61.446,23.022 -50.847,54.11 -44,122 6.832,67.906 -20.549,110.465 28,148 66.762,52.005 134.961,19.438 183,95 43.438,68.71 28.032,64.69 48,104 28.705,56.52 0.026,38.78 -27,92 -15.369,30.25 -23.8,87.32 -70,90 -34.661,2.01 -39.567,3.98 -75,-19 -36.04,-23.34 -47.371,-22.43 -99,-37 l -91,21 c -22.616,10.91 6.105,69.9 24,73 l 71,10 c 56.732,29.98 29.707,0.36 78.795,47.18 39.863,38.05 126.483,9.23 192.205,-13.18 58.945,-20.1 56.281,-70.5 84,-123 30.019,-56.87 18.439,-33.54 17,-111 -1.831,-98.56 -22.859,-168.984 -81,-208 -58.967,-39.979 -65.008,-5 -128.884,-57.172 z"
         inkscape:connector-curvature="0"
         style="fill:#35462d;fill-rule:evenodd" />
    </g>
    <g
       id="Vatten">
      <path
         id="Bäcken"
         class="cls-2"
         d="m 786,555 c -48.34,19.375 -107.173,46.143 -209,84 -61.446,23.022 -50.847,54.11 -44,122 6.831,67.906 -20.55,110.465 28,148 66.761,52.005 134.96,19.438 183,95 43.437,68.71 28.032,64.69 48,104 28.705,56.52 0.026,38.78 -27,92 -15.37,30.25 -23.8,87.32 -70,90 -34.661,2.01 -42.855,5.42 -78,-18 -28.238,-18.79 -44.371,-21.43 -96,-36 l -94,19 c 0,0 -46.547,17.02 -59,36 -12.453,18.98 -12.209,28.95 -14,44 -3.091,25.97 -31,38 -31,38 0,0 -13.633,2.58 -6,20 7.633,17.42 35.631,131.7 51,141 15.369,9.3 15.534,6.34 34,14 18.466,7.66 40.982,3.52 56,11 15.018,7.48 22.072,23.71 17,38 -5.072,14.29 -18.834,22.63 -22,37 -3.166,14.37 -14.2,20.91 6,47 20.2,26.09 23.98,18.01 19,46 -4.98,27.99 4.709,40.02 5,54 0.291,13.98 7.162,10.39 12,40"
         inkscape:connector-curvature="0"
         style="fill:none;fill-rule:evenodd;stroke:#90a3bc;stroke-width:20px"
         inkscape:label="Backen" />
      <path
         id="Byträsket"
         class="cls-3"
         d="m 1182,-280 1407,1 c -8.29,15.235 -22.93,24.954 -28,43.022 -8.76,31.177 0.5,74.488 -24,89.045 -26,15.445 -132.77,1.7 -164,-7 h -26 c -32.42,-9.058 -75.97,-7.095 -108,-16.008 h -30 c -22.21,-6.173 -47,-14.164 -68,-20.01 -13.77,-3.832 -33.89,1.749 -42,4 -19.73,5.48 -48.55,-0.292 -64,4 h -50 c -15.47,5.129 -31.85,27.889 -43,39.02 -20,19.955 -46.51,34.7 -62,59.03 -16.13,25.337 -37.84,79 -58,97.049 Q 1706.005,85.177 1590,157.22 c -88.13,74.944 -181.71,139.769 -283,202.1 l -36,8 -76,55.028 h -22 c -31.06,8.655 -82.95,-2.448 -114,8 q -16.005,13.005 -32,26.013 c -25.53,11.289 -80.422,27 -99,43.022 q -18,29.012 -36,58.029 c -7.669,6.832 -52.461,34.89 -65,30.015 -12.29,-5.59 -15.224,-20.029 -25,-28.014 l -20,-6 c -6.932,-5.691 -6.271,-15.043 -12,-22.011 -13.282,-16.153 -28.742,-26.9 -39,-47.024 l -21,-42.021 q 1,-6 2,-12.006 l -14,-17.009 c -15.218,-13.167 -96.723,-31 -127,-31.015 v -3 c 13.186,-42.389 13.6,-49.931 62,-58.029 4.812,-7.341 1.934,-14.1 3,-23.012 l 21,-3 q 2,-3 4,-6 c -4.2,-8.776 -9.773,-23.429 -18,-28.014 -9.374,-5.225 -14.356,0.845 -20,-8 3.858,-14.669 41.443,-23.171 64,-17.009 34.613,9.456 123.268,-28.944 164,-37.018 24.445,-44.484 15.04,-79.1 60,-108.055 14.369,-9.254 35.754,-7.685 54,-13.007 50.7,-14.788 144.92,-26.629 176,-60.03 -1.66,-21.073 -22.15,-27.477 -28,-44.022 -9.93,-28.081 -16.74,-57.136 -24,-84.042 -2.89,-10.713 4.86,-17.848 6,-24.012 l -6,-18.01 c -7.44,-29.2 -9.5,-26.147 0,-54.027 3.4,-9.984 -0.15,-15.378 13,-16.008 6.14,3.184 22.86,10.338 28,7 14.89,-7.375 35.16,-19.895 46,-32.016 q -2.505,-12.505 -5,-25.013 5.505,-4.003 11,-8.003 z"
         inkscape:connector-curvature="0"
         style="fill:#90a3bc;fill-rule:evenodd"
         inkscape:label="Bytrasket" />
      <path
         id="Havet"
         class="cls-3"
         d="m 3174,1463 c 0.33,0.67 0.67,1.33 1,2 -0.33,-0.67 -0.67,-1.33 -1,-2 z m 191,295 c 0.03,-17.79 -7.03,-31.02 -5,-44 q 9,-4.005 18,-8 c 4.96,7.49 4.47,12.49 15,15 -0.98,46.17 30.01,22.74 61,34 20.84,10.95 12.49,36.25 19,62 0.67,0.33 1.33,0.67 2,1 h 5 c 4.48,-6.61 19.33,-44.56 23,-47 q 44.49,-0.495 89,-1 c 64.64,-20.17 112.92,-68.03 195,-44 17.44,5.1 27.35,-14.01 47,-8 19.4,5.93 43.71,18.16 60,29 15.09,10.05 25.19,35.88 46,39 6.89,1.03 61.34,-28.46 73,-32 9.36,-2.84 83.86,8.79 93,12 q 25.5,24.99 51,50 14.505,0.495 29,1 c 13.19,18.53 21.28,42.04 41,54 q 25.5,6.495 51,13 27.99,13.995 56,28 c 9.81,4.65 48.56,30 59,28 q 73.995,-30 148,-60 h 126 c 24.85,7.24 42.43,34.32 66,40 l 78,-21 21,-21 c 16.01,1.74 25.56,14.17 39,18 15.51,4.42 27.4,-4.05 44,-4 0.33,-3.33 0.67,-6.67 1,-10 1.71,-3.65 2.69,-4.07 6,-6 q 5.505,2.505 11,5 c 2.67,-1 5.33,-2 8,-3 q 0.495,-7.005 1,-14 c 30.61,-15.57 54.7,31.45 87,27 l 9,-18 h 1 v 2 q 0.495,162.48 1,325 H 64 v -3 q 4,-7.995 8,-16 c -7.079,-5.2 -39.948,-32.1 -42,-39 -3.272,-11.01 9.247,-50.16 12,-60 5.436,-19.42 2.359,-34.65 8,-54 q 17,-30 34,-60 23.5,-19.005 47,-38 c 12.332,-12.98 7.6,-44.28 27,-50 23.915,-7.05 52.017,2.61 76,-4 24.268,-6.69 51.688,-16.28 76,-24 0.636,5.05 0.48,4.96 4,7 1.333,0.33 2.666,0.67 4,1 17.766,-17.08 42.091,-0.82 60,4 18.454,4.97 25.526,-12.48 47,-8 15.914,3.32 29.176,9.68 49,10 -0.078,-7.47 3.985,-6.23 6,-12 l 4,-38 q 6.5,0.495 13,1 c 0.267,24.28 -3.993,40.82 -9,59 -4.3,15.63 6.1,11.3 -2,27 q 2,5.505 4,11 c 2.506,2.16 6.292,-1.11 8,2 1.773,3.23 0.941,9.74 2,12 q 6.5,-0.495 13,-1 c 0.035,-12.78 -3.988,-12.99 -5,-23 7.927,-16.3 9.768,-31.86 21,-44 30.611,-0.62 25.752,19.57 35,39 -1.973,18.6 19.055,28.02 29,26 -0.128,-14 2.4,-56.09 5,-65 8.072,-27.67 -10.009,-71.07 5,-91 6.061,-8.05 17.719,-2.67 27,-8 q 6,-7.5 12,-15 c 5.252,2 11.782,7.18 14,12 2.96,6.43 13.963,118.12 13,122 -23.887,1.27 -49.574,14.96 -53,37 q 8.5,9.495 17,19 c 12.147,5.89 31.193,7.26 38,18 q 1,6.495 2,13 c 3.064,5.32 9.213,7.44 11,15 v 23 c 3.952,18.96 10.39,36.5 17,53 13.476,-2.4 9.028,-21.46 7,-33 0.333,-0.33 0.666,-0.67 1,-1 4,-0.33 0,-2.67 4,-3 0.342,-5.42 -0.446,-6.42 -3,-9 -3,-0.67 3,-4.33 0,-5 0.042,-13.48 -3.855,-22.64 -5,-34 9.126,-6.94 13.471,-14.19 20,-24 q 18,-17.505 36,-35 15.5,-18 31,-36 -12,-25.005 -24,-50 c 5.966,-26.36 20.734,-26.31 46,-34 4.615,-1.4 12.408,-6.66 22,-4 5.687,1.58 9.1,5.61 17,4 0.645,-11.25 0.166,-15.38 6,-23 8.369,-2.31 12.523,-7.72 19,-12 12.615,1.92 50.442,14.34 62,11 17.143,-4.95 40.714,-30.14 60,-27 q 21.99,13.5 44,27 c 9.67,2.22 38.56,-10.15 47,-12 7.72,-1.7 91.84,26.44 94,30 l 9,33 c 2.16,6.4 9.95,12.2 12,17 v 19 l 7,7 c 1.07,5.4 -5.78,5.55 -7,9 -4.05,11.47 2.2,53.55 3,56 5.88,15.26 42.86,29.19 63,26 v -5 q 13.995,0.495 28,1 c 9.63,-12.7 34.82,-21.68 40,-37 v -41 c 2.9,-9.61 12.91,-24.72 19,-34 l 54,-45 c 8.27,-12.59 15.73,-56.37 26,-63 q 22.5,-8.505 45,-17 c 22.09,-8.52 46.06,-24.82 69,-32 31.88,-9.98 63.99,-17.28 94,-26 26.53,-7.71 36.92,18.95 52,24 q 14.505,-1.005 29,-2 12.495,-0.495 25,-1 c 11.18,-5.69 14.15,-31.52 21,-42 10.68,-16.36 20.32,-31.07 31,-48 16.16,-25.61 49.31,-32.07 56,-68 0.67,-0.33 1.33,-0.67 2,-1 3.67,0.33 7.33,0.67 11,1 6.29,3.04 10.09,10.34 15,15 23.03,-0.65 56.16,-17.12 79,-10 q 20.505,12 41,24 c 14.02,4.82 33.33,4.03 49,7 12.94,17.2 13.09,75.71 6,100 v 53 q -9,10.995 -18,22 v 3 c 3.41,3.6 6.81,11.59 15,10 q 12,-8.505 24,-17 51,-0.495 102,-1 c 6.01,0.65 19.52,7.44 26,9 15.07,3.63 29.3,-4.98 47,0 2.67,1.33 5.33,2.67 8,4 q 28.5,-16.005 57,-32 c 19,-5.82 29.82,9.2 47,4 54.76,-16.57 90.21,-60.77 134,-89 16.75,2.42 21.13,9.87 28,22 12.98,-2.31 42.74,-21.92 54,-19 14.23,3.69 35.41,21.4 50,19 2.33,-1.67 4.67,-3.33 7,-5 v -6 c -5.88,-4.13 -11.22,-8.62 -12,-18 2.11,-4.42 3.48,-6.89 8,-9 22.03,-9.66 50.32,-13.24 75,-18 q 7.005,-11.505 14,-23 c 2.67,0.33 5.33,0.67 8,1 6.1,4.9 6.38,14.27 15,17 q 19.5,-1.005 39,-2 c 20.12,4.91 56.76,36.62 78,9 3.47,-8.74 3.11,-11.16 10,-16 2,0.67 4,1.33 6,2 3.35,21.95 2.06,26.07 15,37 q 16.005,-7.995 32,-16 c 14.47,-4.33 23.97,9.13 41,4 11.01,-3.32 48.16,-18.54 58,-25 q 15.495,-18 31,-36 c 6.68,-4.39 15.79,-5.73 22,-10 -0.19,-10.25 2.18,-33.74 5,-40 19.17,-6.91 34.42,-18.7 58,-20 l 9,9 c 8.25,-2.02 11.25,-8.48 17,-13 q -22.995,28.5 -46,57 v 3 c 6.57,7.05 13.13,13.2 25,15 -1,2.33 -2,4.67 -3,7 l -15,6 c 1.84,21.76 9.69,29.69 4,55 -10.13,-1.67 -19.88,-4.48 -25,4 3.56,27.64 31.88,48.14 58,51 q 9.495,-9 19,-18 c 0.03,-23.9 -16.27,-30.4 -13,-51 1,-0.33 2,-0.67 3,-1 10.3,-4.04 17.87,6.4 29,8 l 18,-12 q 1.995,-9 4,-18 3.495,-4.005 7,-8 c 1.94,-6.81 -2.91,-15.32 -1,-23 12.21,-1.97 21,-14.48 30,-21 -2.73,12.21 4.76,19.94 1,34 -6.31,23.59 -13.26,59.8 2,80 11.78,15.59 42.91,14.58 53,32 q 2.505,13.995 5,28 c 1.46,5.15 6.17,11.72 3,20 -7.02,12 -28.46,9.74 -37,20 -9.57,14.45 9.46,27.18 16,33 22.08,0.19 34.32,-7.38 54,-8 z m -3635,326 c 2,0.33 4,0.67 6,1 14.5,6.38 33.381,30.36 41,44 -2.55,10.12 -7.922,36.48 3,42 20.211,7.95 46.161,7.19 52,29 h -182 v -3 q 3.5,-16.5 7,-33 c 11.1,-6.96 43.389,-20.33 51,-28 q 11,-25.995 22,-52 z"
         inkscape:connector-curvature="0"
         style="fill:#90a3bc;fill-rule:evenodd" />
    </g>
    <g
       id="g3710"
       inkscape:label="Logo och vatten" />
    <g
       style="opacity:0.07999998;mix-blend-mode:difference"
       class="cls-4"
       id="Vägar"
       inkscape:label="Vagar">
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 125,526 348,484 c 0,0 84.6,133.59 232,134 147.4,0.41 284.855,-12.61 295,-15 10.145,-2.39 327.68,-126.62 389,-137 61.32,-10.38 100.42,-27.251 189,-15 88.58,12.251 122.29,11.267 267,55 144.71,43.733 241.21,75.94 310,84"
         class="cls-5"
         id="Siknäsvägen"
         inkscape:label="Siknasvagen" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 1018,1327 c 0,0 -4.61,86.33 95,46 99.61,-40.33 86.82,-32.39 181,-31 94.18,1.39 241.46,-44.96 267,-62 25.54,-17.04 68.93,-103.05 131,-52"
         class="cls-5"
         id="Ateljen" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         id="path18"
         d="M 2383,1646"
         class="cls-5" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 630,1486 c 0,0 40.037,134.05 44,179 3.963,44.95 22,226 22,226"
         class="cls-5"
         id="Hamnen" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 230,1406 c 0,0 -33.594,-37.01 -138,11 -104.406,48.01 -62,23 -62,23"
         class="cls-5"
         id="Viken" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 559,1103 c 0,0 -183.833,125.62 -223,177 -39.167,51.38 -149.638,165.57 -162,239 -12.362,73.43 6.88,89.52 33,111 26.12,21.48 73.288,52.09 196,-13 122.712,-65.09 282.307,-194.32 374,-216 83.4,-19.72 263.28,-36.47 245,-146 -18.45,-110.53 -23,-121 -23,-121"
         class="cls-5"
         data-name="Runt byn"
         id="Runt_byn" />
      <path
         style="fill:none;fill-rule:evenodd;stroke:#296d69;stroke-width:20px"
         inkscape:connector-curvature="0"
         d="m 2135,133 -638,450 c 0,0 -125.27,105.348 -148,181 -31.24,103.975 -31.35,168.034 -13,256"
         class="cls-5"
         id="Lappkullen" />
    </g>
  </g>
  <circle
     id="circle4528"
     r="1069.5"
     cy="1069.5"
     cx="1069.5"
     style="display:none"
     inkscape:label="Cirkel" />
</svg>
`

func main() {
	fmt.Println(svgData)

	fmt.Println("---------------------------------")
		
	doc := xmldom.Must(xmldom.ParseXML(svgData))
	fmt.Println(doc.XMLPretty())
}

custom xml prefixes

I'd like to add namespaced attributes but I find that xpath queries seem to be ignored unless I recreate a new node. Not a bug of go-xmldom but i really can't see why it doesn't work within my code.

One of the things i tried to do was export the xml before the creation of the new node and after.
The only difference was the existence of a namespaced prefix ux:Class.

ded648b4-6e6a-42ad-8c20-1975002045cd

I tried adding a a namespace directive but its not respecting the existence of the prefix.

Just to get the code the work I would just recreate the node using the existing xml which weirdly allows the xpath query to work however later other weird side effects regarding other ux prefixes are ignored or just plain old don't exist after some simple node additions.

Do you have any suggestions for preserving custom prefixes?

How come this query does not return results?

I'm trying to search for a node in a document
I think my xpath query is correct in syntax but does not return any elements. The following test fails.

func TestLayerIDFinding(t *testing.T) {
	xm :=
		`<?xml version="1.0" encoding="UTF-8"?><_signin.SignInButton X="28" Y="352" Width="320" Height="50" LayerID="7FD41E11-85C2-45CC-AFFA-E9D480F22503" />`
	node := xmldom.Must(xmldom.ParseXML(xm))
	xpath := `//_signin.SignInButton[@LayerID="7FD41E11-85C2-45CC-AFFA-E9D480F22503"]`
	r := node.Root.QueryOne(xpath)
	if r == nil {
		t.Error("Could Not find element")
	} else {
		t.Log("Element found")
	}
}

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.