From gerardkeiser@gmail.com Fri Apr 14 20:18:50 2017 From: Gerard Keiser To: ntg-context@ntg.nl Subject: [NTG-context] \xmldoifelse false condition Date: Fri, 14 Apr 2017 13:17:57 -0500 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0064426743935603838==" --===============0064426743935603838== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I am trying to select specific elements from an XML document to make anthologies, and still retain the original numbering, by using \xmldoifelse; if the node matches, it is printed, and if it is not, the head number is incremented, to get something like this: 1 First Section (first match) 4 Fourth Section (second match, but fourth element in the XML file) But the fail condition is not being triggered properly. Here are the files: % % anthologize.xml % \def\incrementheadnumber[#1]{\setupheadnumber[#1] [\numexpr\namedheadnumber{#1}+1\relax]} \startxmlsetups xml:selectivity:* \xmlsetsetup{\xmldocument}{*}{-} \xmlsetsetup{\xmldocument}{stuff|div|head}{xml:selectivity:*} \stopxmlsetups \xmlregisterdocumentsetup{selectivity}{xml:selectivity:*} % Here is the difficulty. \startxmlsetups{xml:selectivity:stuff} \xmldoifelse{#1}{/div[match()==1 or match()==4]/all()} { \xmlflush{#1} } { \incrementheadnumber[section] } \stopxmlsetups \startxmlsetups{xml:selectivity:div} \xmlflush{#1} \stopxmlsetups \startxmlsetups{xml:selectivity:head} \startsection[title={\xmlflush{#1}}]\stopsection \stopxmlsetups \starttext \xmlprocessfile{selectivity}{bob.xml}{} \stoptext % % bob.xml %
First Section
Second Section
Third Section
Fourth Section
The result is that only the first and fourth heads are printed, as desired, but I end up with: 1 First Section 2 Fourth Section. I have used the \incrementheadnumber function elsewhere, and it works fine. If I replace \incrementheadnumber[section] with \xmlflush{#1}, it prints: 1 First Section 2 Fourth Section 3 First Section 4 Second Section 5 Third Section 6 Fourth Section So it seems to be properly triggering the true condition, but not the false condition, and I cannot figure out how to fix it. Using ConTeXt 2017.04.08 and LuaTeX 1.0.3. I do thank you for your help. Sincerely, Gerard Keiser --===============0064426743935603838== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFt aWx5Omdlb3JnaWEsc2VyaWYiPkkgYW0gdHJ5aW5nIHRvIHNlbGVjdCBzcGVjaWZpYyBlbGVtZW50 cyBmcm9tIGFuIFhNTCBkb2N1bWVudCB0byBtYWtlIGFudGhvbG9naWVzLCBhbmQgc3RpbGwgcmV0 YWluIHRoZSBvcmlnaW5hbCBudW1iZXJpbmcsIGJ5IHVzaW5nIFx4bWxkb2lmZWxzZTsgaWYgdGhl IG5vZGUgbWF0Y2hlcywgaXQgaXMgcHJpbnRlZCwgYW5kIGlmIGl0IGlzIG5vdCwgdGhlIGhlYWQg bnVtYmVyIGlzIGluY3JlbWVudGVkLCB0byBnZXQgc29tZXRoaW5nIGxpa2UgdGhpczo8YnI+PGJy PsKgIMKgIDEgRmlyc3QgU2VjdGlvbiAoZmlyc3QgbWF0Y2gpPGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj7CoCDCoCA0 IEZvdXJ0aCBTZWN0aW9uIChzZWNvbmQgbWF0Y2gsIGJ1dCBmb3VydGggZWxlbWVudCBpbiB0aGUg WE1MIGZpbGUpPGJyPjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250 LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj48YnI+wqBCdXQgdGhlIGZhaWwgY29uZGl0aW9uIGlzIG5v dCBiZWluZyB0cmlnZ2VyZWQgcHJvcGVybHkuIEhlcmUgYXJlIHRoZSBmaWxlczo8YnI+PGJyPjwv ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lh LHNlcmlmIj4lPGJyPiUgYW50aG9sb2dpemUueG1sPGJyPiU8YnI+XGRlZlxpbmNyZW1lbnRoZWFk bnVtYmVyWyMxXXtcc2V0dXBoZWFkbnVtYmVyWyMxXTxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFtcbnVtZXhwclxuYW1lZGhlYWRudW1iZXJ7IzF9KzFc cmVsYXhdfTxicj48YnI+XHN0YXJ0eG1sc2V0dXBzIHhtbDpzZWxlY3Rpdml0eToqPGJyPsKgIFx4 bWxzZXRzZXR1cHtceG1sZG9jdW1lbnR9eyp9ey19PGJyPsKgIFx4bWxzZXRzZXR1cHtceG1sZG9j dW1lbnR9e3N0dWZmfGRpdnxoZWFkfXt4bWw6c2VsZWN0aXZpdHk6Kn08YnI+XHN0b3B4bWxzZXR1 cHM8YnI+PGJyPlx4bWxyZWdpc3RlcmRvY3VtZW50c2V0dXB7c2VsZWN0aXZpdHl9e3htbDpzZWxl Y3Rpdml0eToqfTxicj48YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9 ImZvbnQtZmFtaWx5Omdlb3JnaWEsc2VyaWYiPiUgSGVyZSBpcyB0aGUgZGlmZmljdWx0eS48YnI+ PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFtaWx5Omdlb3Jn aWEsc2VyaWYiPlxzdGFydHhtbHNldHVwc3t4bWw6c2VsZWN0aXZpdHk6c3R1ZmZ9PGJyPsKgwqDC oCBceG1sZG9pZmVsc2V7IzF9ey9kaXZbbWF0Y2goKT09MSBvciBtYXRjaCgpPT00XS9hbGwoKX08 YnI+wqDCoMKgIHs8YnI+wqDCoMKgwqDCoCBceG1sZmx1c2h7IzF9PGJyPsKgwqDCoCB9IHs8YnI+ wqDCoMKgwqDCoCBcaW5jcmVtZW50aGVhZG51bWJlcltzZWN0aW9uXTxicj7CoMKgwqAgfTxicj5c c3RvcHhtbHNldHVwczxicj48YnI+XHN0YXJ0eG1sc2V0dXBze3htbDpzZWxlY3Rpdml0eTpkaXZ9 PGJyPsKgIFx4bWxmbHVzaHsjMX08YnI+XHN0b3B4bWxzZXR1cHM8YnI+PGJyPlxzdGFydHhtbHNl dHVwc3t4bWw6c2VsZWN0aXZpdHk6aGVhZH08YnI+wqAgXHN0YXJ0c2VjdGlvblt0aXRsZT17XHht bGZsdXNoeyMxfX1dXHN0b3BzZWN0aW9uPGJyPlxzdG9weG1sc2V0dXBzPGJyPjxicj5cc3RhcnR0 ZXh0PGJyPjxicj7CoCBceG1scHJvY2Vzc2ZpbGV7c2VsZWN0aXZpdHl9e2JvYi54bWx9e308YnI+ PGJyPlxzdG9wdGV4dDxicj48YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5 bGU9ImZvbnQtZmFtaWx5Omdlb3JnaWEsc2VyaWYiPiU8YnI+JSBib2IueG1sPGJyPiU8YnI+Jmx0 O3N0dWZmJmd0Ozxicj7CoCAmbHQ7ZGl2Jmd0Ozxicj7CoMKgwqAgJmx0O2hlYWQmZ3Q7Rmlyc3Qg U2VjdGlvbiZsdDsvaGVhZCZndDs8YnI+wqAgJmx0Oy9kaXYmZ3Q7PGJyPsKgICZsdDtkaXYmZ3Q7 PGJyPsKgwqDCoCAmbHQ7aGVhZCZndDtTZWNvbmQgU2VjdGlvbiZsdDsvaGVhZCZndDs8YnI+wqAg Jmx0Oy9kaXYmZ3Q7PGJyPsKgICZsdDtkaXYmZ3Q7PGJyPsKgwqDCoCAmbHQ7aGVhZCZndDtUaGly ZCBTZWN0aW9uJmx0Oy9oZWFkJmd0Ozxicj7CoCAmbHQ7L2RpdiZndDs8YnI+wqAgJmx0O2RpdiZn dDs8YnI+wqDCoMKgICZsdDtoZWFkJmd0O0ZvdXJ0aCBTZWN0aW9uJmx0Oy9oZWFkJmd0Ozxicj7C oCAmbHQ7L2RpdiZndDs8YnI+Jmx0Oy9zdHVmZiZndDs8YnI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj5UaGUgcmVz dWx0IGlzIHRoYXQgb25seSB0aGUgZmlyc3QgYW5kIGZvdXJ0aCBoZWFkcyBhcmUgcHJpbnRlZCwg YXMgZGVzaXJlZCwgYnV0IEkgZW5kIHVwIHdpdGg6PGJyPjxicj48L2Rpdj48ZGl2IGNsYXNzPSJn bWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6Z2VvcmdpYSxzZXJpZiI+wqDCoMKgIDEg Rmlyc3QgU2VjdGlvbjxicj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0i Zm9udC1mYW1pbHk6Z2VvcmdpYSxzZXJpZiI+wqDCoMKgIDIgRm91cnRoIFNlY3Rpb24uPGJyPjxi cj5JIGhhdmUgdXNlZCB0aGUgXGluY3JlbWVudGhlYWRudW1iZXIgZnVuY3Rpb24gZWxzZXdoZXJl LCBhbmQgaXQgd29ya3MgZmluZS4gSWYgSSByZXBsYWNlIFxpbmNyZW1lbnRoZWFkbnVtYmVyW3Nl Y3Rpb25dIHdpdGggXHhtbGZsdXNoeyMxfSwgaXQgcHJpbnRzOjxicj48YnI+PC9kaXY+PGRpdiBj bGFzcz0iZ21haWxfZGVmYXVsdCIgc3R5bGU9ImZvbnQtZmFtaWx5Omdlb3JnaWEsc2VyaWYiPsKg wqDCoCAxIEZpcnN0IFNlY3Rpb248YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZGVmYXVsdCIg c3R5bGU9ImZvbnQtZmFtaWx5Omdlb3JnaWEsc2VyaWYiPsKgwqDCoCAyIEZvdXJ0aCBTZWN0aW9u PGJyPjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpn ZW9yZ2lhLHNlcmlmIj7CoMKgwqAgMyBGaXJzdCBTZWN0aW9uPGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj7CoMKgwqAg NCBTZWNvbmQgU2VjdGlvbjxicj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHls ZT0iZm9udC1mYW1pbHk6Z2VvcmdpYSxzZXJpZiI+wqDCoMKgIDUgVGhpcmQgU2VjdGlvbjxicj48 L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6Z2Vvcmdp YSxzZXJpZiI+wqDCoMKgIDYgRm91cnRoIFNlY3Rpb248YnI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj5TbyBpdCBz ZWVtcyB0byBiZSBwcm9wZXJseSB0cmlnZ2VyaW5nIHRoZSB0cnVlIGNvbmRpdGlvbiwgYnV0IG5v dCB0aGUgZmFsc2UgY29uZGl0aW9uLCBhbmQgSSBjYW5ub3QgZmlndXJlIG91dCBob3cgdG8gZml4 IGl0LiBVc2luZyBDb25UZVh0IDIwMTcuMDQuMDggYW5kIEx1YVRlWCAxLjAuMy4gSSBkbyB0aGFu ayB5b3UgZm9yIHlvdXIgaGVscC48YnI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1 bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNlcmlmIj5TaW5jZXJlbHksPGJyPjwvZGl2 PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTpnZW9yZ2lhLHNl cmlmIj5HZXJhcmQgS2Vpc2VyPGJyPjwvZGl2PjwvZGl2Pgo= --===============0064426743935603838==--