Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oscarmarcusson/xmltree
A utility for parsing an XML structure without all the hassle
https://github.com/oscarmarcusson/xmltree
csharp dotnet tree-structure utility-library xml xml-parser
Last synced: about 2 months ago
JSON representation
A utility for parsing an XML structure without all the hassle
- Host: GitHub
- URL: https://github.com/oscarmarcusson/xmltree
- Owner: OscarMarcusson
- License: mit
- Created: 2023-11-27T14:04:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-02T12:19:17.000Z (about 1 year ago)
- Last Synced: 2023-12-02T13:31:15.014Z (about 1 year ago)
- Topics: csharp, dotnet, tree-structure, utility-library, xml, xml-parser
- Language: C#
- Homepage:
- Size: 248 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Xml Tree
A utility for parsing XML structures without all the hassle.
```csharp
// Parse files
var doc = XmlTree.Parse.File("c:/dir/my-file.xml");
foreach(var rootNode in doc.nodes) {
// Do something
}
``````csharp
// Parse strings
var doc = XmlTree.Parse.String("Hello World!
");
Console.WriteLine(doc.nodes[0].tag); // > p
Console.WriteLine(doc.nodes[0].value); // > Hello World!
``````csharp
// Include or ignore comments
var options = new XmlTree.ParserOptions { comments = CommentOptions.Include };
var doc = XmlTree.Parse.String("", options);
Console.WriteLine(doc.nodes[0].tag); // > !--
Console.WriteLine(doc.nodes[0].value); // > Comments work!
```### What you get
* A full node tree of any given XML structure
* Options for getting / ignoring comments
* Full attribute support
* With quotation marks, both `value="example"` and `value='example'`
* Without quotation marks, like `value=example`* Full self-closing support
* Any `` style element will be parsed correctly no matter the type of xml
* Any self closing tags in HTML docs, like ``, will be parsed correctly even if supplied as ``
* Optional custom closing tags in the parse options* Simple value & text handling
* Single value nodes, like a `` element without any spans in HTML, will be parsed as a single node containing the text as its node value
* Multi-value nodes, like a `` element with one or more `` children, will have all content as child nodes. Any free text outside of spans will be places as children without an element tag
* Automatic encoding from the prolog for `File` and `Byte` parsing
#### Note
This is **not** a deserialization utility, although it could be turned into one should you wish. This is a tool for getting the tree structure of XML data. The tool was for example built for creating an HTML minifier, but it may be used in any XML related workflow.