libxml2 icon indicating copy to clipboard operation
libxml2 copied to clipboard

Node.String()/Node.ToString indentation not working as expected

Open whitlockjc opened this issue 1 year ago • 2 comments

I am trying to use Node.String() (or Node.ToString()) to generate a properly indented XML representation of the XML. No matter what I do, when using those methods I end up with each line being prepended with 4 spaces. Here is an example:

Expected

<character id="Snuffy">
  <name>Snuffy Smith</name>
  <born>1934-01-01</born>
  <qualification>volatile and diminutive moonshiner, ornery little cuss, sawed-off and shiftless</qualification>
</character>

Actual

<character id="Snuffy">
      <name>Snuffy Smith</name>
      <born>1934-01-01</born>
      <qualification>volatile and diminutive moonshiner, ornery little cuss, sawed-off and shiftless</qualification>
    </character>

I have tried passing options to Node.ToString() but I always end up with the same output. (Both node.String() and node.ToString(1, true) produce the same result above.) Before I implement some hack, I figured I'd at least reach out to make sure I'm not overlooking something.

go version

go version go1.23-20240626-RC01

whitlockjc avatar Aug 12 '24 14:08 whitlockjc

@whitlockjc thanks for your reports, but I don't have much time and motivation to spend on this project right now. I may come back later, but I just can't promise you prompt response as of now. If you need to have things fixed, please consider submitting pull requests.

lestrrat avatar Aug 14 '24 22:08 lestrrat

By the way, the parser.XMLParseNoBlanks parser option seems to have fixed this.

whitlockjc avatar Aug 22 '24 20:08 whitlockjc