@@ -824,6 +824,46 @@ def test_repeat_names(parser):
824
824
tm .assert_frame_equal (df_iter , df_expected )
825
825
826
826
827
+ def test_repeat_values_new_names (parser ):
828
+ xml = """\
829
+ <shapes>
830
+ <shape>
831
+ <name>rectangle</name>
832
+ <family>rectangle</family>
833
+ </shape>
834
+ <shape>
835
+ <name>square</name>
836
+ <family>rectangle</family>
837
+ </shape>
838
+ <shape>
839
+ <name>ellipse</name>
840
+ <family>ellipse</family>
841
+ </shape>
842
+ <shape>
843
+ <name>circle</name>
844
+ <family>ellipse</family>
845
+ </shape>
846
+ </shapes>"""
847
+ df_xpath = read_xml (xml , xpath = ".//shape" , parser = parser , names = ["name" , "group" ])
848
+
849
+ df_iter = read_xml_iterparse (
850
+ xml ,
851
+ parser = parser ,
852
+ iterparse = {"shape" : ["name" , "family" ]},
853
+ names = ["name" , "group" ],
854
+ )
855
+
856
+ df_expected = DataFrame (
857
+ {
858
+ "name" : ["rectangle" , "square" , "ellipse" , "circle" ],
859
+ "group" : ["rectangle" , "rectangle" , "ellipse" , "ellipse" ],
860
+ }
861
+ )
862
+
863
+ tm .assert_frame_equal (df_xpath , df_expected )
864
+ tm .assert_frame_equal (df_iter , df_expected )
865
+
866
+
827
867
def test_names_option_wrong_length (datapath , parser ):
828
868
filename = datapath ("io" , "data" , "xml" , "books.xml" )
829
869
0 commit comments