0
DTDを持つ特定のものの前にすべての要素:XPathを使用しカウントXPathとDTD
<!ELEMENT PLAY (TITLE, FM, PERSONAE, SCNDESCR, PLAYSUBT, INDUCT?, PROLOGUE?, ACT+, EPILOGUE?)>
<!ELEMENT FM (P+)>
<!ELEMENT PERSONAE (TITLE, (PERSONA | PGROUP)+)>
<!ELEMENT PGROUP (PERSONA+, GRPDESCR)>
<!ELEMENT INDUCT (TITLE, SUBTITLE*, (SCENE+|(SPEECH|STAGEDIR|SUBHEAD)+))>
<!ELEMENT ACT (TITLE, SUBTITLE*, PROLOGUE?, SCENE+, EPILOGUE?)>
<!ELEMENT SCENE (TITLE, SUBTITLE*, (SPEECH | STAGEDIR | SUBHEAD)+)>
<!ELEMENT PROLOGUE (TITLE, SUBTITLE*, (STAGEDIR | SPEECH)+)>
<!ELEMENT EPILOGUE (TITLE, SUBTITLE*, (STAGEDIR | SPEECH)+)>
<!ELEMENT SPEECH (SPEAKER+, (LINE | STAGEDIR | SUBHEAD)+)>
<!ELEMENT LINE (#PCDATA | STAGEDIR)*>
は、私は彼が「であるために、またはではない」と言う前に、すべてのハムレットのスピーチをカウントする必要があります。ハムレットはSPEAKERタグの下にあり、スピーチはSPEECHタグの下にあり、彼はLINEタグの下にあると言います。
/PLAY/ACT/SCENE/SPEECH[contains(LINE, 'To be')][contains(SPEAKER, 'HAMLET')]