我有这样的事情:
<?cond_start condition="Online" ?>
<p>This section is tagged with Conditional "Online".</p>
<?cond_end?>
<?cond_start condition="Print" ?>
<p>This section is tagged with Conditional "Print".</p>
<?cond_end?>
我需要根据PI的值处理PI之间的内容(条件=&#34; Online&#34; / condition =&#34; Print&#34;)。 我可以选择一个特定的PI,例如这样:
//processing-instruction('cond_start')
但我不知道如何超越这个...特别是不会,因为可以有这样的嵌套PI:
<?cond_start condition="Online" ?>
<p>This section is <?cond_start condition="Comment" ?>Are you sure?<?cond_end?> tagged with Conditional "Online".</p>
<?cond_end?>
Aynone的任何想法?
答案 0 :(得分:1)
我认为你想要所有节点
cond_start
,它有一定的内容,例如'condition="Online"'
。cond_end
那将是:
//node()[
preceding-sibling::processing-instruction()[1][
self::processing-instruction('cond_start')
and contains(., 'condition="Online"')
]
and following-sibling::processing-instruction()[1][
self::processing-instruction('cond_end')
]
]
请注意,当<?cond_start condition="..." ?>
和<?cond_end?>
之间有更多处理说明时,这不起作用。如果你遇到这种情况就会变得更加复杂。