我无法使用ElementTree在xml文件上找到text属性

时间:2019-06-17 20:12:51

标签: python xml xml-parsing

我正在尝试在Word文档中查找文本。我有xml一词,现在,我试图在这些标签中获取文本。

  $.ajaxSetup({
      headers: {
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
     }
  });


  if($('div').is('#single')){
        var buttonSingle = $("#single"),
        buttonMulti = $("#multi"),
        file;
    }

   if(buttonSingle){
     new AjaxUpload(buttonSingle, {
     action: '/admin/' + buttonSingle.data('url') + "?upload=1",
     data: {name: buttonSingle.data('name')},
     name: buttonSingle.data('name'),

     onSubmit: function(file, ext){
        if (! (ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
            alert('Exception');
            return false;
        }

      buttonSingle.closest('.file-upload').find('.overlay').css({'display':'block'});

    },

     onComplete: function(file, response){
        $res = JSON.parse(response);
        if($res['error']){
            alert($res['error']);
            buttonSingle.closest('.file-upload').find('.overlay').css({'display': 'none'});
            return false;
        }
        setTimeout(function(){
            buttonSingle.closest('.file-upload').find('.overlay').css({'display':'none'});

            response = JSON.parse(response);
            $('.' + buttonSingle.data('name')).html('<img src="/images/' + response.file + '" style="max-height: 150px;">');
        }, 1000);
    }
});

我专门在w:t标签之间看

<w:body>
        <w:p w14:paraId="416D9DAB" w14:textId="77777777" w:rsidR="00947170" w:rsidRDefault="00947170" w:rsidP="00947170">
            <w:pPr>
                <w:pStyle w:val="Title"/>
            </w:pPr>
            <w:r>
                <w:t>text here</w:t>
            </w:r>
        </w:p>

当我尝试查找与标记链接的属性时,我查看了this question,但我没有返回文本属性。

<w:t>text here</w:t>

我一直将word-xml标记的file_name = 'document.xml' full_file = 'c:\\filepath' dom = ET.parse(full_file) root = dom.getroot() for body in root: if body.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}body': for paragraph in body: if paragraph.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}p': for right_align in paragraph: if right_align.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}r': for work_text in right_align: if word_text.tag == '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}t': print(word_text.attrib) 部分称为{http://schemas.openxmlformats.org/wordprocessingml/2006/main},因为那是.tag返回我的东西。我很确定这是我的工作,并且到目前为止,它一直在起作用,尽管我很想知道正确的方法。这使我认为找不到属性的原因是因为这样做导致引用错误的标签。

输出:

<w:

不打印

print(word_text.get(text))

通常会打印{},有些文本会得到{'{{http://www.w3.org/XML/1998/namespace}} space':'preserve'}

0 个答案:

没有答案