Comments (3)
Thank you for the GIST allowing me to quickly reproduce the observed issue.
In your example, re-encoding creates a different output because ">" is valid XML text and doesn't normally need to be encoded.
Same problem exists in various other places where the XML nodes are unable to keep the exact source of the parsed input, e.g. the delimiter types of attributes, whitespace within elements, and whitespace at document level.
While it is technically possible to solve the reported and the various related problems, I am not sure if it is worth the trouble? Most XML libraries I know don't do it.
Would it help to be able to specify a custom encoder function?
from dart-xml.
Yes, allowing me to specify a custom encoding/decoding function will possibly solve this specific issue, however I am not entirely certain we are on the right track.
Question: is it a valid requirement that I should be able to retrieve contents of an XmlElement as XML without any modification if
- the XML is valid
- the textual content may contain such character sequences that are decodable
I saw in a previous issue that you brought up PHP's implementation as reference. I created yet another gist (my PHP skills are terrible).
If the answer to the question is yes
, the default behavior of this library should reflect it. Until such time arrives, I would be happy with the custom function you mentioned.
My use-case
The following wall of text is only loosely related to the issue at hand; I wanted to offer you some context as to how I'd like to use this library.
I am using it to parse an XML based format, called XLIFF.
A small snippet from an XLIFF file:
<trans-unit id="some_trans_unit_id" datatype="xml">
<source><bpt ctype="x-g" equiv-text="[" id="_0"><g id="_0"></bpt>3. helyezett: </source>
</trans-unit>
From my application's point of view, it is crucial, that the contents of source
can be retrieved as-is, without any kind of encoding/decoding.
If I retrieve the text contents of the source sourceElement.text
I get <g id="_0">3. helyezett:
. It was devised that such fragments be wrapped in bpt
tags and encoded to produce valid XML.
from dart-xml.
With c2fb10d single and double quotes in attributes are preserved.
With b2482cd whitespaces, processing instructions and comments at the document level are preserved.
from dart-xml.
Related Issues (20)
- Dependency issues HOT 3
- Flutter error : 'XmlText' isn't a type. HOT 1
- 2.11 End-of-Line Handling HOT 3
- Parse file that does not have closing tags HOT 2
- How can I transform XML with XSL? HOT 3
- How to remove node from xml HOT 2
- How to omit xml declaration and remove indentation? HOT 3
- How to add new line before each attribute? HOT 1
- How to convert xml to string without backslahes HOT 2
- entityMapping: Works unexpectedly HOT 3
- New release with XPath support? HOT 3
- isSelfClosing not working HOT 5
- XmlParserException: ">" expected at 1:16 HOT 3
- Parsing does not work starting with 6.2.2 HOT 3
- Validate XML file against XSD HOT 1
- Support custom entities HOT 1
- Error: Type 'Result' not found. HOT 2
- The dart sdk version in pub.yaml should be a range? HOT 1
- value of text element is null HOT 2
- .children property includes text nodes and comments HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dart-xml.