aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/xml/document/node-attr.h
diff options
context:
space:
mode:
authorartyasen <artyasen@yandex-team.com>2025-02-03 15:57:35 +0300
committerartyasen <artyasen@yandex-team.com>2025-02-03 16:35:09 +0300
commita19aaf0e98329e8fff4e16626c2f8212f7d87789 (patch)
treeb262bcd535c5f29e36b701c95fa91c8beb32fcb6 /library/cpp/xml/document/node-attr.h
parentcafd6740c55721b602590b6371e271bb41355e36 (diff)
downloadydb-a19aaf0e98329e8fff4e16626c2f8212f7d87789.tar.gz
Получение XML аттрибута без исключений
add no exception methods commit_hash:245a52ca795a16ad57a9ac642b0cd00ca0122a32
Diffstat (limited to 'library/cpp/xml/document/node-attr.h')
-rw-r--r--library/cpp/xml/document/node-attr.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/library/cpp/xml/document/node-attr.h b/library/cpp/xml/document/node-attr.h
index 1378ffdfbf..6f5445d4c2 100644
--- a/library/cpp/xml/document/node-attr.h
+++ b/library/cpp/xml/document/node-attr.h
@@ -45,6 +45,18 @@ namespace NXml {
}
template <class T>
+ TMaybe<T> TNode::TryAttr(TZtStringBuf name) const {
+ TCharPtr value(xmlGetProp(NodePointer, XMLCHAR(name.c_str())));
+ if (!value) {
+ return Nothing();
+ }
+
+ T t;
+ AttrInternal(value, t, name);
+ return t;
+ }
+
+ template <class T>
T TNode::Attr(TZtStringBuf name, const T& defvalue) const {
TCharPtr attr(xmlGetProp(NodePointer, XMLCHAR(name.c_str())));
if (!attr) {