1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "jingle/notifier/listener/xml_element_util.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "talk/xmllite/qname.h"
12 #include "talk/xmllite/xmlconstants.h"
13 #include "talk/xmllite/xmlelement.h"
14 #include "talk/xmllite/xmlprinter.h"
18 std::string XmlElementToString(const buzz::XmlElement& xml_element) {
19 std::ostringstream xml_stream;
20 buzz::XmlPrinter::PrintXml(&xml_stream, &xml_element);
21 return xml_stream.str();
24 buzz::XmlElement* MakeBoolXmlElement(const char* name, bool value) {
25 const buzz::QName elementQName(buzz::STR_EMPTY, name);
26 const buzz::QName boolAttrQName(buzz::STR_EMPTY, "bool");
27 buzz::XmlElement* bool_xml_element =
28 new buzz::XmlElement(elementQName, true);
29 bool_xml_element->AddAttr(boolAttrQName, value ? "true" : "false");
30 return bool_xml_element;
33 buzz::XmlElement* MakeIntXmlElement(const char* name, int value) {
34 const buzz::QName elementQName(buzz::STR_EMPTY, name);
35 const buzz::QName intAttrQName(buzz::STR_EMPTY, "int");
36 buzz::XmlElement* int_xml_element =
37 new buzz::XmlElement(elementQName, true);
38 int_xml_element->AddAttr(intAttrQName, base::IntToString(value));
39 return int_xml_element;
42 buzz::XmlElement* MakeStringXmlElement(const char* name, const char* value) {
43 const buzz::QName elementQName(buzz::STR_EMPTY, name);
44 const buzz::QName dataAttrQName(buzz::STR_EMPTY, "data");
45 buzz::XmlElement* data_xml_element =
46 new buzz::XmlElement(elementQName, true);
47 data_xml_element->AddAttr(dataAttrQName, value);
48 return data_xml_element;
51 } // namespace notifier