2009-07-28 2 views
1

Я не могу захватить этот конкретный узел.Проблемы с поиском XPath

<w:body> 
    <w:p wsp:rsidR="00D12EE7" wsp:rsidRDefault="00F86B09"> 
     <w:fldSimple w:instr=" MERGEFIELD GAS_REAFCity "> 
     <w:r> 
      <w:rPr> 
      <w:noProof/> 
      </w:rPr> 
      <w:t>«GAS_REAFCity»</w:t> 
     </w:r> 
     </w:fldSimple> 
    </w:p> 
</w:body> 

Я попытался можно получить так близко, как // ш: р/ш: fldSimple , но как я выбираю w: инстр = "MERGEFIELD GAS_REAFCity".

Thanks Цените любую помощь !!

ответ

3

Не атрибуты используют синтаксис @, поэтому вы должны выбрать @w: instr?

//w:p/w:fldSimple[@w:instr=" MERGEFIELD GAS_REAFCity "] 

XPath Expression Tester

2

Ваш XPath захватит узел элемента, но вы хотите, чтобы узел атрибута. Ваш xpath должен быть чем-то вроде //w:p/w:fldSimple/@w:instr. в зависимости от того, что вы используете для оценки xpath, вы, вероятно, можете использовать что-то вроде myAttr.getText(), в качестве альтернативы вы можете использовать string(//w:p/w:fldSimple/@w:instr).

Я заметил, что ваш XPath относительно, это намеренно? Наконец, есть много отличных фреймворков для обработки DOM и XPath, и я знаю, что Dom4J позволит вам программно перемещаться по дереву Dom, а затем вы можете запросить XPath, который будет обращаться к этому узлу.

Я нашел следующий tutorial полезный при запуске из

Надеются, что это помогает

Смежные вопросы