libxml-ruby 0.9.5-x86-mswin32-60 → 0.9.6-x86-mswin32-60
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +28 -0
- data/README +8 -12
- data/ext/libxml/cbg.c +86 -86
- data/ext/libxml/libxml.c +875 -899
- data/ext/libxml/ruby_libxml.h +91 -65
- data/ext/libxml/ruby_xml_attr.c +485 -485
- data/ext/libxml/ruby_xml_attr.h +3 -3
- data/ext/libxml/ruby_xml_attributes.h +2 -2
- data/ext/libxml/ruby_xml_document.c +124 -307
- data/ext/libxml/ruby_xml_document.h +3 -3
- data/ext/libxml/ruby_xml_dtd.c +119 -119
- data/ext/libxml/ruby_xml_dtd.h +2 -2
- data/ext/libxml/ruby_xml_error.c +1 -1
- data/ext/libxml/ruby_xml_error.h +2 -2
- data/ext/libxml/ruby_xml_html_parser.c +119 -119
- data/ext/libxml/ruby_xml_html_parser.h +3 -3
- data/ext/libxml/ruby_xml_input.c +13 -11
- data/ext/libxml/ruby_xml_input.h +3 -3
- data/ext/libxml/ruby_xml_input_cbg.c +197 -197
- data/ext/libxml/ruby_xml_namespace.c +158 -0
- data/ext/libxml/ruby_xml_namespace.h +12 -0
- data/ext/libxml/ruby_xml_namespaces.c +303 -0
- data/ext/libxml/{ruby_xml_ns.h → ruby_xml_namespaces.h} +4 -5
- data/ext/libxml/ruby_xml_node.c +88 -293
- data/ext/libxml/ruby_xml_node.h +4 -4
- data/ext/libxml/ruby_xml_parser.c +152 -152
- data/ext/libxml/ruby_xml_parser.h +3 -3
- data/ext/libxml/ruby_xml_parser_context.c +630 -657
- data/ext/libxml/ruby_xml_parser_context.h +3 -3
- data/ext/libxml/ruby_xml_reader.c +899 -904
- data/ext/libxml/ruby_xml_reader.h +2 -2
- data/ext/libxml/ruby_xml_relaxng.h +2 -2
- data/ext/libxml/ruby_xml_sax_parser.c +175 -175
- data/ext/libxml/ruby_xml_sax_parser.h +3 -3
- data/ext/libxml/ruby_xml_schema.c +165 -165
- data/ext/libxml/ruby_xml_schema.h +2 -2
- data/ext/libxml/ruby_xml_state.h +2 -2
- data/ext/libxml/ruby_xml_xinclude.c +24 -24
- data/ext/libxml/ruby_xml_xinclude.h +3 -3
- data/ext/libxml/ruby_xml_xpath.c +108 -108
- data/ext/libxml/ruby_xml_xpath.h +3 -3
- data/ext/libxml/ruby_xml_xpath_context.c +84 -35
- data/ext/libxml/ruby_xml_xpath_context.h +3 -3
- data/ext/libxml/ruby_xml_xpath_expression.c +5 -7
- data/ext/libxml/ruby_xml_xpath_expression.h +2 -2
- data/ext/libxml/ruby_xml_xpath_object.c +7 -7
- data/ext/libxml/ruby_xml_xpath_object.h +2 -2
- data/ext/libxml/ruby_xml_xpointer.c +107 -107
- data/ext/libxml/ruby_xml_xpointer.h +3 -3
- data/ext/libxml/version.h +2 -2
- data/ext/mingw/libxml_ruby.dll.a +0 -0
- data/ext/mingw/libxml_ruby.so +0 -0
- data/ext/vc/libxml_ruby.vcproj +13 -5
- data/lib/libxml.rb +4 -1
- data/lib/libxml/document.rb +40 -6
- data/lib/libxml/hpricot.rb +76 -76
- data/lib/libxml/namespace.rb +60 -0
- data/lib/libxml/namespaces.rb +36 -0
- data/lib/libxml/node.rb +90 -26
- data/lib/libxml/ns.rb +20 -0
- data/test/model/bands.xml +5 -0
- data/test/tc_attributes.rb +1 -1
- data/test/tc_document.rb +24 -41
- data/test/tc_document_write.rb +87 -115
- data/test/tc_namespace.rb +59 -0
- data/test/tc_namespaces.rb +174 -0
- data/test/tc_node.rb +41 -33
- data/test/tc_node_copy.rb +1 -1
- data/test/tc_node_edit.rb +6 -0
- data/test/tc_node_write.rb +76 -0
- data/test/tc_xinclude.rb +2 -9
- data/test/tc_xpath.rb +38 -11
- data/test/test_suite.rb +3 -1
- metadata +16 -9
- data/ext/libxml/ruby_xml_ns.c +0 -150
- data/test/ets_copy_bug.rb +0 -21
- data/test/ets_copy_bug3.rb +0 -38
- data/test/model/default_validation_bug.rb +0 -0
- data/test/tc_ns.rb +0 -18
@@ -2,11 +2,10 @@
|
|
2
2
|
|
3
3
|
/* Please see the LICENSE file for copyright and distribution information */
|
4
4
|
|
5
|
-
#ifndef
|
6
|
-
#define
|
5
|
+
#ifndef __RXML_NAMESPACES__
|
6
|
+
#define __RXML_NAMESPACES__
|
7
7
|
|
8
|
-
extern VALUE
|
8
|
+
extern VALUE cXMLNamespaces;
|
9
9
|
|
10
|
-
void
|
11
|
-
VALUE rxml_ns_wrap(xmlNsPtr ns);
|
10
|
+
void ruby_init_xml_namespaces(void);
|
12
11
|
#endif
|
data/ext/libxml/ruby_xml_node.c
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
/* $Id: ruby_xml_node.c 650 2008-11-30 03:40:22Z cfis $ */
|
2
|
-
|
3
|
-
/* Please see the LICENSE file for copyright and distribution information */
|
4
|
-
|
5
1
|
#include "ruby_libxml.h"
|
6
2
|
#include "ruby_xml_node.h"
|
7
3
|
|
@@ -88,7 +84,7 @@ void rxml_node_mark(xmlNodePtr xnode)
|
|
88
84
|
rxml_node_mark_common(xnode);
|
89
85
|
}
|
90
86
|
|
91
|
-
VALUE rxml_node_wrap(VALUE
|
87
|
+
VALUE rxml_node_wrap(VALUE klass, xmlNodePtr xnode)
|
92
88
|
{
|
93
89
|
VALUE obj;
|
94
90
|
|
@@ -98,7 +94,7 @@ VALUE rxml_node_wrap(VALUE class, xmlNodePtr xnode)
|
|
98
94
|
return (VALUE) xnode->_private;
|
99
95
|
}
|
100
96
|
|
101
|
-
obj = Data_Wrap_Struct(
|
97
|
+
obj = Data_Wrap_Struct(klass, rxml_node_mark, rxml_node2_free, xnode);
|
102
98
|
|
103
99
|
xnode->_private = (void*) obj;
|
104
100
|
return obj;
|
@@ -341,6 +337,26 @@ static VALUE rxml_node_content_stripped_get(VALUE self)
|
|
341
337
|
return (result);
|
342
338
|
}
|
343
339
|
|
340
|
+
/*
|
341
|
+
* call-seq:
|
342
|
+
* node.debug -> true|false
|
343
|
+
*
|
344
|
+
* Print libxml debugging information to stdout.
|
345
|
+
* Requires that libxml was compiled with debugging enabled.
|
346
|
+
*/
|
347
|
+
static VALUE rxml_node_debug(VALUE self)
|
348
|
+
{
|
349
|
+
#ifdef LIBXML_DEBUG_ENABLED
|
350
|
+
xmlNodePtr xnode;
|
351
|
+
Data_Get_Struct(self, xmlNode, xnode);
|
352
|
+
xmlDebugDumpNode(NULL, xnode, 2);
|
353
|
+
return Qtrue;
|
354
|
+
#else
|
355
|
+
rb_warn("libxml was compiled without debugging support.")
|
356
|
+
return Qfalse;
|
357
|
+
#endif
|
358
|
+
}
|
359
|
+
|
344
360
|
/*
|
345
361
|
* call-seq:
|
346
362
|
* node.first -> XML::Node
|
@@ -496,46 +512,72 @@ static VALUE rxml_node_doc(VALUE self)
|
|
496
512
|
|
497
513
|
/*
|
498
514
|
* call-seq:
|
499
|
-
* node.
|
515
|
+
* node.to_s -> "string"
|
516
|
+
* node.to_s(:indent => true, :encoding => 'UTF-8', :level => 0) -> "string"
|
500
517
|
*
|
501
|
-
*
|
502
|
-
|
503
|
-
|
518
|
+
* Converts a node, and all of its children, to a string representation.
|
519
|
+
* You may provide an optional hash table to control how the string is
|
520
|
+
* generated. Valid options are:
|
521
|
+
*
|
522
|
+
* :indent - Specifies if the string should be indented. The default value
|
523
|
+
* is true. Note that indentation is only added if both :indent is
|
524
|
+
* true and XML.indent_tree_output is true. If :indent is set to false,
|
525
|
+
* then both indentation and line feeds are removed from the result.
|
526
|
+
*
|
527
|
+
* :level - Specifies the indentation level. The amount of indentation
|
528
|
+
* is equal to the (level * number_spaces) + number_spaces, where libxml
|
529
|
+
* defaults the number of spaces to 2. Thus a level of 0 results in
|
530
|
+
* 2 spaces, level 1 results in 4 spaces, level 2 results in 6 spaces, etc.
|
531
|
+
*
|
532
|
+
* :encoding - Specifies the output encoding of the string. It
|
533
|
+
* defaults to XML::Input::UTF8. To change it, use one of the
|
534
|
+
* XML::Input encoding constants. */
|
535
|
+
|
536
|
+
static VALUE rxml_node_to_s(int argc, VALUE *argv, VALUE self)
|
504
537
|
{
|
538
|
+
VALUE options = Qnil;
|
505
539
|
xmlNodePtr xnode;
|
506
|
-
|
540
|
+
xmlCharEncodingHandlerPtr encodingHandler;
|
541
|
+
xmlOutputBufferPtr output;
|
507
542
|
|
508
|
-
|
543
|
+
int level = 0;
|
544
|
+
int indent = 1;
|
545
|
+
const char *encoding = "UTF-8";
|
509
546
|
|
510
|
-
|
511
|
-
return (Qnil);
|
547
|
+
rb_scan_args(argc, argv, "01", &options);
|
512
548
|
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
549
|
+
if (!NIL_P(options))
|
550
|
+
{
|
551
|
+
VALUE rencoding, rindent, rlevel;
|
552
|
+
Check_Type(options, T_HASH);
|
553
|
+
rencoding = rb_hash_aref(options, ID2SYM(rb_intern("encoding")));
|
554
|
+
rindent = rb_hash_aref(options, ID2SYM(rb_intern("indent")));
|
555
|
+
rlevel = rb_hash_aref(options, ID2SYM(rb_intern("level")));
|
519
556
|
|
520
|
-
|
521
|
-
|
522
|
-
* node.debug_dump -> (true|nil)
|
523
|
-
*
|
524
|
-
* Dump this node to stdout, including any debugging
|
525
|
-
* information.
|
526
|
-
*/
|
527
|
-
static VALUE rxml_node_debug_dump(VALUE self)
|
528
|
-
{
|
529
|
-
xmlNodePtr xnode;
|
530
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
557
|
+
if (rindent == Qfalse)
|
558
|
+
indent = 0;
|
531
559
|
|
532
|
-
|
533
|
-
|
560
|
+
if (rlevel != Qnil)
|
561
|
+
level = NUM2INT(rlevel);
|
534
562
|
|
535
|
-
|
536
|
-
|
563
|
+
if (rencoding != Qnil)
|
564
|
+
encoding = RSTRING_PTR(rxml_input_encoding_to_s(cXMLInput, rencoding));
|
565
|
+
}
|
566
|
+
|
567
|
+
encodingHandler = xmlFindCharEncodingHandler(encoding);
|
568
|
+
output = xmlAllocOutputBuffer(encodingHandler);
|
569
|
+
|
570
|
+
Data_Get_Struct(self, xmlNode, xnode);
|
571
|
+
xmlNodeDumpOutput(output, xnode->doc, xnode, level, indent, encoding);
|
572
|
+
xmlOutputBufferFlush(output);
|
573
|
+
|
574
|
+
if (output->conv)
|
575
|
+
return rb_str_new2((const char*) output->conv->content);
|
576
|
+
else
|
577
|
+
return rb_str_new2((const char*) output->buffer->content);
|
537
578
|
}
|
538
579
|
|
580
|
+
|
539
581
|
/*
|
540
582
|
* call-seq:
|
541
583
|
* node.each -> XML::Node
|
@@ -579,7 +621,6 @@ static VALUE rxml_node_empty_q(VALUE self)
|
|
579
621
|
return ((xmlIsBlankNode(xnode) == 1) ? Qtrue : Qfalse);
|
580
622
|
}
|
581
623
|
|
582
|
-
static VALUE rxml_node_to_s(VALUE self);
|
583
624
|
|
584
625
|
/*
|
585
626
|
* call-seq:
|
@@ -593,7 +634,7 @@ if(self == other)
|
|
593
634
|
{
|
594
635
|
return Qtrue;
|
595
636
|
}
|
596
|
-
else if NIL_P(other)
|
637
|
+
else if (NIL_P(other))
|
597
638
|
{
|
598
639
|
return Qfalse;
|
599
640
|
}
|
@@ -605,8 +646,8 @@ else
|
|
605
646
|
if (rb_obj_is_kind_of(other, cXMLNode) == Qfalse)
|
606
647
|
rb_raise(rb_eTypeError, "Nodes can only be compared against other nodes");
|
607
648
|
|
608
|
-
self_xml = rxml_node_to_s(self);
|
609
|
-
other_xml = rxml_node_to_s(other);
|
649
|
+
self_xml = rxml_node_to_s(0, NULL, self);
|
650
|
+
other_xml = rxml_node_to_s(0, NULL, other);
|
610
651
|
return(rb_funcall(self_xml, rb_intern("=="), 1, other_xml));
|
611
652
|
}
|
612
653
|
}
|
@@ -836,134 +877,6 @@ static VALUE rxml_node_name_set(VALUE self, VALUE name)
|
|
836
877
|
return (Qtrue);
|
837
878
|
}
|
838
879
|
|
839
|
-
/*
|
840
|
-
* call-seq:
|
841
|
-
* node.namespace -> [namespace, ..., namespace]
|
842
|
-
*
|
843
|
-
* Obtain an array of +XML::NS+ objects representing
|
844
|
-
* this node's xmlns attributes
|
845
|
-
*/
|
846
|
-
static VALUE rxml_node_namespace_get(VALUE self)
|
847
|
-
{
|
848
|
-
xmlNodePtr xnode;
|
849
|
-
xmlNsPtr *nsList, *cur;
|
850
|
-
VALUE arr, ns;
|
851
|
-
|
852
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
853
|
-
if (xnode == NULL)
|
854
|
-
return (Qnil);
|
855
|
-
|
856
|
-
nsList = xmlGetNsList(xnode->doc, xnode);
|
857
|
-
|
858
|
-
if (nsList == NULL)
|
859
|
-
return (Qnil);
|
860
|
-
|
861
|
-
arr = rb_ary_new();
|
862
|
-
for (cur = nsList; *cur != NULL; cur++)
|
863
|
-
{
|
864
|
-
ns = rxml_ns_wrap(*cur);
|
865
|
-
if (ns == Qnil)
|
866
|
-
continue;
|
867
|
-
else
|
868
|
-
rb_ary_push(arr, ns);
|
869
|
-
}
|
870
|
-
xmlFree(nsList);
|
871
|
-
|
872
|
-
return (arr);
|
873
|
-
}
|
874
|
-
|
875
|
-
/*
|
876
|
-
* call-seq:
|
877
|
-
* node.namespace_node -> namespace.
|
878
|
-
*
|
879
|
-
* Obtain this node's namespace node.
|
880
|
-
*/
|
881
|
-
static VALUE rxml_node_namespace_get_node(VALUE self)
|
882
|
-
{
|
883
|
-
xmlNodePtr xnode;
|
884
|
-
|
885
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
886
|
-
if (xnode->ns == NULL)
|
887
|
-
return (Qnil);
|
888
|
-
else
|
889
|
-
return rxml_ns_wrap(xnode->ns);
|
890
|
-
}
|
891
|
-
|
892
|
-
// TODO namespace_set can take varargs (in fact, must if used
|
893
|
-
// with strings), but I cannot see how you can call
|
894
|
-
// that version, apart from with 'send'
|
895
|
-
//
|
896
|
-
// Would sure be nice to support foo.namespace['foo'] = 'bar'
|
897
|
-
// but maybe that's not practical...
|
898
|
-
|
899
|
-
/*
|
900
|
-
* call-seq:
|
901
|
-
* node.namespace = namespace
|
902
|
-
*
|
903
|
-
* Add the specified XML::NS object to this node's xmlns attributes.
|
904
|
-
*/
|
905
|
-
static VALUE rxml_node_namespace_set(int argc, VALUE *argv, VALUE self)
|
906
|
-
{
|
907
|
-
VALUE rns, rprefix;
|
908
|
-
xmlNodePtr xnode;
|
909
|
-
xmlNsPtr xns;
|
910
|
-
char *cp, *href;
|
911
|
-
|
912
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
913
|
-
switch (argc)
|
914
|
-
{
|
915
|
-
case 1:
|
916
|
-
rns = argv[0];
|
917
|
-
if (TYPE(rns) == T_STRING)
|
918
|
-
{
|
919
|
-
cp = strchr(StringValuePtr(rns), (int) ':');
|
920
|
-
if (cp == NULL)
|
921
|
-
{
|
922
|
-
rprefix = rns;
|
923
|
-
href = NULL;
|
924
|
-
}
|
925
|
-
else
|
926
|
-
{
|
927
|
-
rprefix = rb_str_new(StringValuePtr(rns), (int) ((long) cp
|
928
|
-
- (long) StringValuePtr(rns)));
|
929
|
-
href = &cp[1]; /* skip the : */
|
930
|
-
}
|
931
|
-
}
|
932
|
-
else if (rb_obj_is_kind_of(rns, cXMLNS) == Qtrue)
|
933
|
-
{
|
934
|
-
Data_Get_Struct(self, xmlNs, xns);
|
935
|
-
xmlSetNs(xnode, xns);
|
936
|
-
return (rns);
|
937
|
-
}
|
938
|
-
else
|
939
|
-
rb_raise(rb_eTypeError, "must pass a string or an XML::Ns object");
|
940
|
-
|
941
|
-
/* Fall through to next case because when argc == 1, we need to
|
942
|
-
* manually setup the additional args unless the arg passed is of
|
943
|
-
* cXMLNS type */
|
944
|
-
case 2:
|
945
|
-
/* Don't want this code run in the fall through case */
|
946
|
-
if (argc == 2)
|
947
|
-
{
|
948
|
-
rprefix = argv[0];
|
949
|
-
href = StringValuePtr(argv[1]);
|
950
|
-
}
|
951
|
-
|
952
|
-
xns = xmlNewNs(xnode, (xmlChar*) href, (xmlChar*) StringValuePtr(rprefix));
|
953
|
-
if (xns == NULL)
|
954
|
-
rxml_raise(&xmlLastError);
|
955
|
-
else
|
956
|
-
return rxml_ns_wrap(xns);
|
957
|
-
break;
|
958
|
-
|
959
|
-
default:
|
960
|
-
rb_raise(rb_eArgError, "wrong number of arguments (1 or 2)");
|
961
|
-
}
|
962
|
-
|
963
|
-
/* can't get here */
|
964
|
-
return (Qnil);
|
965
|
-
}
|
966
|
-
|
967
880
|
/*
|
968
881
|
* call-seq:
|
969
882
|
* node.next -> XML::Node
|
@@ -1005,55 +918,6 @@ static VALUE rxml_node_next_set(VALUE self, VALUE rnode)
|
|
1005
918
|
return (rxml_node_wrap(cXMLNode, ret));
|
1006
919
|
}
|
1007
920
|
|
1008
|
-
/*
|
1009
|
-
* call-seq:
|
1010
|
-
* node.ns? -> (true|false)
|
1011
|
-
*
|
1012
|
-
* Determine whether this node has a namespace.
|
1013
|
-
*/
|
1014
|
-
static VALUE rxml_node_ns_q(VALUE self)
|
1015
|
-
{
|
1016
|
-
xmlNodePtr xnode;
|
1017
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1018
|
-
if (xnode->ns == NULL)
|
1019
|
-
return (Qfalse);
|
1020
|
-
else
|
1021
|
-
return (Qtrue);
|
1022
|
-
}
|
1023
|
-
|
1024
|
-
/*
|
1025
|
-
* call-seq:
|
1026
|
-
* node.ns_def? -> (true|false)
|
1027
|
-
*
|
1028
|
-
* Obtain an array of +XML::NS+ objects representing
|
1029
|
-
* this node's xmlns attributes
|
1030
|
-
*/
|
1031
|
-
static VALUE rxml_node_ns_def_q(VALUE self)
|
1032
|
-
{
|
1033
|
-
xmlNodePtr xnode;
|
1034
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1035
|
-
if (xnode->nsDef == NULL)
|
1036
|
-
return (Qfalse);
|
1037
|
-
else
|
1038
|
-
return (Qtrue);
|
1039
|
-
}
|
1040
|
-
|
1041
|
-
/*
|
1042
|
-
* call-seq:
|
1043
|
-
* node.ns_def -> namespace
|
1044
|
-
*
|
1045
|
-
* Obtain this node's default namespace.
|
1046
|
-
*/
|
1047
|
-
static VALUE rxml_node_ns_def_get(VALUE self)
|
1048
|
-
{
|
1049
|
-
xmlNodePtr xnode;
|
1050
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1051
|
-
if (xnode->nsDef == NULL)
|
1052
|
-
return (Qnil);
|
1053
|
-
else
|
1054
|
-
return (rxml_ns_wrap(xnode->nsDef));
|
1055
|
-
}
|
1056
|
-
|
1057
921
|
/*
|
1058
922
|
* call-seq:
|
1059
923
|
* node.parent -> XML::Node
|
@@ -1230,38 +1094,6 @@ static VALUE rxml_node_remove_ex(VALUE self)
|
|
1230
1094
|
return self;
|
1231
1095
|
}
|
1232
1096
|
|
1233
|
-
/*
|
1234
|
-
* call-seq:
|
1235
|
-
* node.search_href -> namespace
|
1236
|
-
*
|
1237
|
-
* Search for a namespace by href.
|
1238
|
-
*/
|
1239
|
-
static VALUE rxml_node_search_href(VALUE self, VALUE href)
|
1240
|
-
{
|
1241
|
-
xmlNodePtr xnode;
|
1242
|
-
|
1243
|
-
Check_Type(href, T_STRING);
|
1244
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1245
|
-
return (rxml_ns_wrap(xmlSearchNsByHref(xnode->doc, xnode,
|
1246
|
-
(xmlChar*) StringValuePtr(href))));
|
1247
|
-
}
|
1248
|
-
|
1249
|
-
/*
|
1250
|
-
* call-seq:
|
1251
|
-
* node.search_ns -> namespace
|
1252
|
-
*
|
1253
|
-
* Search for a namespace by namespace.
|
1254
|
-
*/
|
1255
|
-
static VALUE rxml_node_search_ns(VALUE self, VALUE ns)
|
1256
|
-
{
|
1257
|
-
xmlNodePtr xnode;
|
1258
|
-
|
1259
|
-
Check_Type(ns, T_STRING);
|
1260
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1261
|
-
return (rxml_ns_wrap(xmlSearchNs(xnode->doc, xnode,
|
1262
|
-
(xmlChar*) StringValuePtr(ns))));
|
1263
|
-
}
|
1264
|
-
|
1265
1097
|
/*
|
1266
1098
|
* call-seq:
|
1267
1099
|
* node.sibling(node) -> XML::Node
|
@@ -1324,28 +1156,6 @@ static VALUE rxml_node_space_preserve_set(VALUE self, VALUE bool)
|
|
1324
1156
|
return (Qnil);
|
1325
1157
|
}
|
1326
1158
|
|
1327
|
-
/*
|
1328
|
-
* call-seq:
|
1329
|
-
* node.to_s -> "string"
|
1330
|
-
*
|
1331
|
-
* Coerce this node to a string representation of
|
1332
|
-
* it's XML.
|
1333
|
-
*/
|
1334
|
-
static VALUE rxml_node_to_s(VALUE self)
|
1335
|
-
{
|
1336
|
-
xmlNodePtr xnode;
|
1337
|
-
xmlBufferPtr buf;
|
1338
|
-
VALUE result;
|
1339
|
-
|
1340
|
-
Data_Get_Struct(self, xmlNode, xnode);
|
1341
|
-
buf = xmlBufferCreate();
|
1342
|
-
xmlNodeDump(buf, xnode->doc, xnode, 0, 1);
|
1343
|
-
result = rb_str_new2((const char*) buf->content);
|
1344
|
-
|
1345
|
-
xmlBufferFree(buf);
|
1346
|
-
return result;
|
1347
|
-
}
|
1348
|
-
|
1349
1159
|
/*
|
1350
1160
|
* call-seq:
|
1351
1161
|
* node.type -> num
|
@@ -1430,20 +1240,16 @@ void ruby_init_xml_node(void)
|
|
1430
1240
|
rb_define_const(cXMLNode, "ELEMENT_NODE", INT2FIX(XML_ELEMENT_NODE));
|
1431
1241
|
rb_define_const(cXMLNode, "ATTRIBUTE_NODE", INT2FIX(XML_ATTRIBUTE_NODE));
|
1432
1242
|
rb_define_const(cXMLNode, "TEXT_NODE", INT2FIX(XML_TEXT_NODE));
|
1433
|
-
rb_define_const(cXMLNode, "CDATA_SECTION_NODE", INT2FIX(
|
1434
|
-
XML_CDATA_SECTION_NODE));
|
1243
|
+
rb_define_const(cXMLNode, "CDATA_SECTION_NODE", INT2FIX(XML_CDATA_SECTION_NODE));
|
1435
1244
|
rb_define_const(cXMLNode, "ENTITY_REF_NODE", INT2FIX(XML_ENTITY_REF_NODE));
|
1436
1245
|
rb_define_const(cXMLNode, "ENTITY_NODE", INT2FIX(XML_ENTITY_NODE));
|
1437
1246
|
rb_define_const(cXMLNode, "PI_NODE", INT2FIX(XML_PI_NODE));
|
1438
1247
|
rb_define_const(cXMLNode, "COMMENT_NODE", INT2FIX(XML_COMMENT_NODE));
|
1439
1248
|
rb_define_const(cXMLNode, "DOCUMENT_NODE", INT2FIX(XML_DOCUMENT_NODE));
|
1440
|
-
rb_define_const(cXMLNode, "DOCUMENT_TYPE_NODE", INT2FIX(
|
1441
|
-
|
1442
|
-
rb_define_const(cXMLNode, "DOCUMENT_FRAG_NODE", INT2FIX(
|
1443
|
-
XML_DOCUMENT_FRAG_NODE));
|
1249
|
+
rb_define_const(cXMLNode, "DOCUMENT_TYPE_NODE", INT2FIX(XML_DOCUMENT_TYPE_NODE));
|
1250
|
+
rb_define_const(cXMLNode, "DOCUMENT_FRAG_NODE", INT2FIX(XML_DOCUMENT_FRAG_NODE));
|
1444
1251
|
rb_define_const(cXMLNode, "NOTATION_NODE", INT2FIX(XML_NOTATION_NODE));
|
1445
|
-
rb_define_const(cXMLNode, "HTML_DOCUMENT_NODE", INT2FIX(
|
1446
|
-
XML_HTML_DOCUMENT_NODE));
|
1252
|
+
rb_define_const(cXMLNode, "HTML_DOCUMENT_NODE", INT2FIX(XML_HTML_DOCUMENT_NODE));
|
1447
1253
|
rb_define_const(cXMLNode, "DTD_NODE", INT2FIX(XML_DTD_NODE));
|
1448
1254
|
rb_define_const(cXMLNode, "ELEMENT_DECL", INT2FIX(XML_ELEMENT_DECL));
|
1449
1255
|
rb_define_const(cXMLNode, "ATTRIBUTE_DECL", INT2FIX(XML_ATTRIBUTE_DECL));
|
@@ -1493,11 +1299,9 @@ void ruby_init_xml_node(void)
|
|
1493
1299
|
rb_define_method(cXMLNode, "copy", rxml_node_copy, 1);
|
1494
1300
|
rb_define_method(cXMLNode, "content", rxml_node_content_get, 0);
|
1495
1301
|
rb_define_method(cXMLNode, "content=", rxml_node_content_set, 1);
|
1496
|
-
rb_define_method(cXMLNode, "content_stripped",
|
1497
|
-
|
1302
|
+
rb_define_method(cXMLNode, "content_stripped", rxml_node_content_stripped_get, 0);
|
1303
|
+
rb_define_method(cXMLNode, "debug", rxml_node_debug, 0);
|
1498
1304
|
rb_define_method(cXMLNode, "doc", rxml_node_doc, 0);
|
1499
|
-
rb_define_method(cXMLNode, "dump", rxml_node_dump, 0);
|
1500
|
-
rb_define_method(cXMLNode, "debug_dump", rxml_node_debug_dump, 0);
|
1501
1305
|
rb_define_method(cXMLNode, "empty?", rxml_node_empty_q, 0);
|
1502
1306
|
rb_define_method(cXMLNode, "eql?", rxml_node_eql_q, 1);
|
1503
1307
|
rb_define_method(cXMLNode, "lang", rxml_node_lang_get, 0);
|
@@ -1505,25 +1309,16 @@ void ruby_init_xml_node(void)
|
|
1505
1309
|
rb_define_method(cXMLNode, "line_num", rxml_node_line_num, 0);
|
1506
1310
|
rb_define_method(cXMLNode, "name", rxml_node_name_get, 0);
|
1507
1311
|
rb_define_method(cXMLNode, "name=", rxml_node_name_set, 1);
|
1508
|
-
rb_define_method(cXMLNode, "namespace", rxml_node_namespace_get, 0);
|
1509
|
-
rb_define_method(cXMLNode, "namespace_node", rxml_node_namespace_get_node, 0);
|
1510
|
-
rb_define_method(cXMLNode, "namespace=", rxml_node_namespace_set, -1);
|
1511
1312
|
rb_define_method(cXMLNode, "node_type", rxml_node_type, 0);
|
1512
|
-
rb_define_method(cXMLNode, "ns", rxml_node_namespace_get, 0);
|
1513
|
-
rb_define_method(cXMLNode, "ns?", rxml_node_ns_q, 0);
|
1514
|
-
rb_define_method(cXMLNode, "ns_def?", rxml_node_ns_def_q, 0);
|
1515
|
-
rb_define_method(cXMLNode, "ns_def", rxml_node_ns_def_get, 0);
|
1516
1313
|
rb_define_method(cXMLNode, "path", rxml_node_path, 0);
|
1517
1314
|
rb_define_method(cXMLNode, "pointer", rxml_node_pointer, 1);
|
1518
1315
|
rb_define_method(cXMLNode, "remove!", rxml_node_remove_ex, 0);
|
1519
|
-
rb_define_method(cXMLNode, "search_ns", rxml_node_search_ns, 1);
|
1520
|
-
rb_define_method(cXMLNode, "search_href", rxml_node_search_href, 1);
|
1521
1316
|
rb_define_method(cXMLNode, "space_preserve", rxml_node_space_preserve_get, 0);
|
1522
1317
|
rb_define_method(cXMLNode, "space_preserve=", rxml_node_space_preserve_set, 1);
|
1523
|
-
rb_define_method(cXMLNode, "to_s", rxml_node_to_s,
|
1318
|
+
rb_define_method(cXMLNode, "to_s", rxml_node_to_s, -1);
|
1524
1319
|
rb_define_method(cXMLNode, "xlink?", rxml_node_xlink_q, 0);
|
1525
1320
|
rb_define_method(cXMLNode, "xlink_type", rxml_node_xlink_type, 0);
|
1526
1321
|
rb_define_method(cXMLNode, "xlink_type_name", rxml_node_xlink_type_name, 0);
|
1527
1322
|
|
1528
1323
|
rb_define_alias(cXMLNode, "==", "eql?");
|
1529
|
-
}
|
1324
|
+
}
|