Comments (3)
Actually, as the attributes are a map with unique keys, the operator[] could work like the std::map operator[], so that it will add a new attribute if it does not exist. Makes it simple to add and update attributes, and to look up attributes that are mandatory. Optional attributes should be accessed with the usual attribute(name) method:
xml_attribute operator[](string_arg name) {
xml_attribute att = attribute(name);
return att ? att : append_attribute(name);
}
Example:
node["radius"] = 0.5; // add attribute
node["radius"] = 1.0; // update it.
double r = node["radius"].as_double(); // look up mandatory attribute
from pugixml.
This was the 1st thing I've added once cloned the library.
from pugixml.
FWIW there's a lot of different opinions on the syntax and semantics of the operators (should [] automatically add an attribute? should it only do it if the attribute is a non-const value?).
A straightforward answer is to only provide read-only operators for attributes, but that just saves a tiny bit of typing over explicit .attribute
calls.
Overall it doesn't seem like it's an obviously good idea. It saves typing, which is great, but it introduces additional syntax that duplicates existing one - see #255 for a different take. I'm going to close this since I think it's best that pugixml core interface remains unambiguous and clear.
from pugixml.
Related Issues (20)
- Version 1.14 HOT 1
- Can you add the ability to access child nodes using index? HOT 1
- PUGIXML_WCHAR_MODE and error messages. HOT 1
- add xml_node_type_str function for debugging and application logging HOT 3
- option to join multiple CDATA sections into one when parsing HOT 2
- parse_embed_pcdata and parse_merge_pcdata don't play together HOT 2
- Unexpected #endif in line 13201 with precompilation in a pch.h file HOT 2
- XML Canonicalization: as an option, allow parsing eol's into the document model (as PCDATA holding those) HOT 2
- Warning when building 1.14 in x86 on Clang HOT 3
- Position of the parse result offset in case of status_bad_start_element
- Error in handling loading errors example HOT 1
- Incorrect result of xml_document::load_file -"File was not found" HOT 2
- Question: I have made my own case insensitive version, is that ok? HOT 2
- Serilisation HOT 4
- pugi::xml_node and std::ranges, maybe a documentation request HOT 2
- call function xml_node::empty() always return false in anyway HOT 3
- Not able to attach a xsl via a `<?xml-stylesheet ...?>` node HOT 1
- xmldocument::save uses non-transformed encoding parameter HOT 4
- Warnings (C5245) when having PUGIXML_NO_STL and PUGIXML_API defined HOT 6
- PUGIXML_WCHAR_MODE featrue for vcpkg HOT 1
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 pugixml.