 |
Changeset 3522
- Timestamp:
- 05/25/08 23:36:46
(6 months ago)
- Author:
- kris
- Message:
- deprecated XmlPrinter?
- made DocPrinter? more efficient
fixes #1100 ... thanks alexn
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r3292 |
r3522 |
|
| 2 | 2 | import tango.time.StopWatch; |
|---|
| 3 | 3 | import tango.text.xml.Document; |
|---|
| 4 | | import tango.text.xml.XmlPrinter; |
|---|
| | 4 | import tango.text.xml.DocPrinter; |
|---|
| 5 | 5 | |
|---|
| 6 | 6 | /******************************************************************************* |
|---|
| … | … | |
| 26 | 26 | |
|---|
| 27 | 27 | // emit document |
|---|
| 28 | | auto print = new XmlPrinter!(char); |
|---|
| | 28 | auto print = new DocPrinter!(char); |
|---|
| 29 | 29 | Stdout(print(doc)).newline; |
|---|
| 30 | 30 | |
|---|
| r3430 |
r3522 |
|
| 46 | 46 | final void print (Node root, void delegate(T[][]...) emit) |
|---|
| 47 | 47 | { |
|---|
| | 48 | T[256] tmp; |
|---|
| 48 | 49 | T[256] spaces = ' '; |
|---|
| 49 | 50 | |
|---|
| … | … | |
| 62 | 63 | |
|---|
| 63 | 64 | case XmlNodeType.Element: |
|---|
| 64 | | emit ("\r\n", spaces[0..indent], "<", node.name); |
|---|
| | 65 | emit ("\r\n", spaces[0..indent], "<", node.name(tmp)); |
|---|
| 65 | 66 | foreach (attr; node.attributes) |
|---|
| 66 | 67 | emit (` `, attr.name, `="`, attr.rawValue, `"`); |
|---|
| … | … | |
| 75 | 76 | if (node.lastChild_.type != XmlNodeType.Data) |
|---|
| 76 | 77 | emit ("\r\n", spaces[0..indent]); |
|---|
| 77 | | emit ("</", node.name, ">"); |
|---|
| | 78 | emit ("</", node.name(tmp), ">"); |
|---|
| 78 | 79 | } |
|---|
| 79 | 80 | else |
|---|
| r3430 |
r3522 |
|
| 51 | 51 | doc.parse (content); |
|---|
| 52 | 52 | |
|---|
| 53 | | auto print = new XmlPrinter!(char); |
|---|
| | 53 | auto print = new DocPrinter!(char); |
|---|
| 54 | 54 | Stdout(print(doc)).newline; |
|---|
| 55 | 55 | --- |
|---|
| … | … | |
| 69 | 69 | .element (null, "child", "value"); |
|---|
| 70 | 70 | |
|---|
| 71 | | auto print = new XmlPrinter!(char); |
|---|
| | 71 | auto print = new DocPrinter!(char); |
|---|
| 72 | 72 | Stdout(print(doc)).newline; |
|---|
| 73 | 73 | --- |
|---|
| … | … | |
| 477 | 477 | if (prefix.length) |
|---|
| 478 | 478 | { |
|---|
| 479 | | version (old) |
|---|
| 480 | | { |
|---|
| | 479 | if (prefix.ptr + prefix.length + 1 is localName.ptr) |
|---|
| | 480 | return prefix.ptr [0 .. prefix.length + localName.length + 1]; |
|---|
| | 481 | |
|---|
| 481 | 482 | auto len = prefix.length + localName.length + 1; |
|---|
| 482 | 483 | if (output.length < len) |
|---|
| … | … | |
| 486 | 487 | output[prefix.length+1 .. len] = localName; |
|---|
| 487 | 488 | return output[0..len]; |
|---|
| 488 | | } |
|---|
| 489 | | else |
|---|
| 490 | | return prefix.ptr [0 .. prefix.length + localName.length + 1]; |
|---|
| 491 | 489 | } |
|---|
| 492 | 490 | return localName; |
|---|
Download in other formats:
|
 |
 |
|
 |
Copyright © 2006-2008 Tango. All Rights Reserved. | Page Width:
Static or
Dynamic