无法使用 OpenXML XPath 解析 Word 文档中的项目符号点类型

问题描述 投票:0回答:1

以下 MS Word 文档仅包含两个单独列表的项目符号点,每个列表都封装在一个单元格表格中。

如何使用Word文档的底层

document.xml
numbering.xml
styles.xml
来捕获项目符号点的类型(即圆形或方形)?阅读 http://officeopenxml.com 文档和其他 SO 帖子,我尝试了以下无济于事:

  1. 使用 document.xml,检索

    $num_id = w:numPr/w:numId/@w:val
    $lvl_id = w:numPr/w:ilvl/@w:val
    值。

  2. 在numbering.xml中,使用上面的

    $num_id
    值,检索
    $abs_id = w:num[@w:numId = $num_id]/w:abstractNumId/@w:val
    以返回相应的值:
    w:abstractNum[@w:abstractNumId = $abs_id]/w:lvl[@w:ilvl = $lvl_id]/w:lvlText/@w:val

    但是,这个结果不正确,因为两者都以方形项目符号形式返回。

  3. 使用 styles.xml,查看

    ListParagraph
    w:style
    以了解任何其他匹配条件。

    但是,唯一标识符或值似乎没有用处。我错过了什么?


请参阅 XML 文档的相关部分。请告知其他部分或文件是否相关。

document.xml

            <w:p w14:paraId="16A4A39D"
                 w14:textId="10E79F44"
                 w:rsidR="00DB3D99"
                 w:rsidRPr="00D6457F"
                 w:rsidRDefault="00DB3D99"
                 w:rsidP="007205D3">
               <w:pPr>
                  <w:pStyle w:val="ListParagraph"/>
                  <w:keepNext/>
                  <w:numPr>
                     <w:ilvl w:val="0"/>
                     <w:numId w:val="5"/>
                  </w:numPr>
                  <w:spacing w:before="80" w:after="80"/>
                  <w:contextualSpacing w:val="0"/>
                  <w:rPr>
                     <w:rFonts w:ascii="Franklin Gothic Book" w:hAnsi="Franklin Gothic Book"/>
                     <w:bCs/>
                     <w:sz w:val="20"/>
                     <w:szCs w:val="20"/>
                  </w:rPr>
               </w:pPr>
               <w:r w:rsidRPr="00DB3D99">
                  <w:rPr>
                     <w:rFonts w:ascii="Franklin Gothic Book" w:hAnsi="Franklin Gothic Book"/>
                     <w:bCs/>
                     <w:sz w:val="20"/>
                     <w:szCs w:val="20"/>
                  </w:rPr>
                  <w:t>Mainstreaming environmental considerations into social and economic decisions at all levels is of vital importance</w:t>
               </w:r>
            </w:p>

 ...
            <w:p w14:paraId="79FEF50C"
                 w14:textId="65464CBE"
                 w:rsidR="009C1A5F"
                 w:rsidRPr="009C1A5F"
                 w:rsidRDefault="009C1A5F"
                 w:rsidP="009C1A5F">
               <w:pPr>
                  <w:pStyle w:val="ListParagraph"/>
                  <w:keepNext/>
                  <w:numPr>
                     <w:ilvl w:val="0"/>
                     <w:numId w:val="9"/>
                  </w:numPr>
                  <w:spacing w:before="80" w:after="80"/>
                  <w:rPr>
                     <w:rFonts w:ascii="Franklin Gothic Book" w:hAnsi="Franklin Gothic Book"/>
                     <w:sz w:val="20"/>
                     <w:szCs w:val="20"/>
                  </w:rPr>
               </w:pPr>
               <w:r w:rsidRPr="009C1A5F">
                  <w:rPr>
                     <w:rFonts w:ascii="Franklin Gothic Book" w:hAnsi="Franklin Gothic Book"/>
                     <w:bCs/>
                     <w:sz w:val="20"/>
                     <w:szCs w:val="20"/>
                  </w:rPr>
                  <w:t>Solutions need to seek an integrated approach that simultaneously address the conservation of the planet’s genetic diversity, species and ecosystems</w:t>
               </w:r>
            </w:p>

numbering.xml

<w:abstractNum w:abstractNumId="0" w15:restartNumberingAfterBreak="0">
      <w:nsid w:val="037970D6"/>
      <w:multiLevelType w:val="hybridMultilevel"/>
      <w:tmpl w:val="98A2E35C"/>
      <w:lvl w:ilvl="0" w:tplc="E7067EF0">
         <w:start w:val="1"/>
         <w:numFmt w:val="bullet"/>
         <w:lvlText w:val=""/>
         <w:lvlJc w:val="left"/>
         <w:pPr>
            <w:ind w:left="360" w:hanging="360"/>
         </w:pPr>
         <w:rPr>
            <w:rFonts w:ascii="Wingdings 2" w:hAnsi="Wingdings 2" w:hint="default"/>
         </w:rPr>
      </w:lvl>
   ...
   </w:abstractNum>
...
   <w:abstractNum w:abstractNumId="8" w15:restartNumberingAfterBreak="0">
      <w:nsid w:val="6DA523B5"/>
      <w:multiLevelType w:val="hybridMultilevel"/>
      <w:tmpl w:val="D0A2943E"/>
      <w:lvl w:ilvl="0" w:tplc="CBCE2CF0">
         <w:start w:val="1"/>
         <w:numFmt w:val="bullet"/>
         <w:lvlText w:val=""/>
         <w:lvlJc w:val="left"/>
         <w:pPr>
            <w:ind w:left="360" w:hanging="360"/>
         </w:pPr>
         <w:rPr>
            <w:rFonts w:ascii="Wingdings 2" w:hAnsi="Wingdings 2" w:hint="default"/>
         </w:rPr>
      </w:lvl>
   ...
   </w:abstractNum>
...
   <w:num w:numId="5" w16cid:durableId="963343858">
      <w:abstractNumId w:val="0"/>
   </w:num>
   ...
   <w:num w:numId="9" w16cid:durableId="324748400">
      <w:abstractNumId w:val="8"/>
   </w:num>

styles.xml

<w:style w:type="paragraph" w:styleId="ListParagraph">
  <w:name w:val="List Paragraph"/>
  <w:basedOn w:val="Normal"/>
  <w:link w:val="ListParagraphChar"/>
  <w:uiPriority w:val="34"/>
  <w:qFormat/>
  <w:rsid w:val="007205D3"/>
  <w:pPr>
     <w:ind w:left="720"/>
     <w:contextualSpacing/>
  </w:pPr>
</w:style>
xml ms-word openxml
1个回答
0
投票

在您的示例中,

<w:lvlText w:val=""/>
<w:lvlText w:val=""/>
看起来相同,但它们并非如此。

第一个

<w:lvlText w:val=""/>
持有U+F081

第二个

<w:lvlText w:val=""/>
持有U+F0A3

© www.soinside.com 2019 - 2024. All rights reserved.