我需要获取word文档中出现的第一个图像的rId。我处理的文档不需要完全解析。所以我决定使用SAX解析器。以前我使用的是DOM解析器,而且我是SAX的新手。有人能告诉我如何使用SAX获取图像的rId吗? 这是一个示例xml文件
<pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture">
<pic:nvPicPr>
<pic:cNvPr id="1" name="Harry-Potter-and-the-Prisoner-of-Azkaban-movie-poster.jpg"/>
<pic:cNvPicPr/>
</pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed="rId5">
<a:extLst>
<a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}">
<a14:useLocalDpi xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main" val="0"/>
</a:ext>
</a:extLst>
</a:blip>
<a:stretch>
<a:fillRect/>
</a:stretch>
</pic:blipFill>
<pic:spPr>
我决定试试这个:
我可以有布尔变量,即isPic,isblipFill。
当我遇到一个
<pic:pic>
元素我可以设置isPic = true,当我一个接一个地读它的孩子时,当我遇到<pic:blipFill>
时,我可以设置isblipFill = true,之后当我读<a:blip>
时,我可以阅读它的属性r:embed(具有图像的rId)。
仅当isPic = true时,才会检查元素是否为blipFill
如果blipFill = true
这是我检查xmlParsing的层次结构的方法。我知道使用xPath这个任务很容易,但为了性能,我试图使用SAX 这是正确的做法吗?