diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-04-03 22:35:21 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-04-03 22:35:21 +0200 |
commit | 1e5d7f41ddede5e6400a2a7762032823d3545df4 (patch) | |
tree | bf53397fbdd2b85c94db72321e7d0e466d02acd5 /tex/context/base/mkiv/lxml-xml.lua | |
parent | 0175a693fcb853ecce7d49f6564895c2dbfd11f1 (diff) | |
download | context-1e5d7f41ddede5e6400a2a7762032823d3545df4.tar.gz |
2018-04-03 22:30:00
Diffstat (limited to 'tex/context/base/mkiv/lxml-xml.lua')
-rw-r--r-- | tex/context/base/mkiv/lxml-xml.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/lxml-xml.lua b/tex/context/base/mkiv/lxml-xml.lua index d1520800f..47a6e8c85 100644 --- a/tex/context/base/mkiv/lxml-xml.lua +++ b/tex/context/base/mkiv/lxml-xml.lua @@ -19,6 +19,10 @@ local xmlserialize = xml.serialize local xmlcollected = xml.collected local xmlnewhandlers = xml.newhandlers +local reparsedentity = xml.reparsedentitylpeg -- \Ux{...} +local unescapedentity = xml.unescapedentitylpeg +local parsedentity = reparsedentity + local function first(collected) -- wrong ? return collected and collected[1] end @@ -355,6 +359,25 @@ function xml.text(id,pattern) -- brrr either content or element (when cdata) end end +function xml.pure(id,pattern) + if pattern then + local collected = xmlfilter(id,pattern) + if collected and #collected > 0 then + parsedentity = unescapedentity + local s = collected and #collected > 0 and xmltotext(collected[1]) or "" + parsedentity = reparsedentity + return s + else + return "" + end + else + parsedentity = unescapedentity + local s = xmltotext(id) or "" + parsedentity = reparsedentity + return s + end +end + xml.content = text -- |