Parsing with dxml
Joel
joelcnz at gmail.com
Wed Nov 20 09:26:19 UTC 2019
On Wednesday, 20 November 2019 at 00:07:53 UTC, Joel wrote:
> On Tuesday, 19 November 2019 at 14:20:39 UTC, Kagamin wrote:
>> On Monday, 18 November 2019 at 06:44:43 UTC, Joel wrote:
>>> ```
>>> <?xml version="1.0"?>
>>>
>>> <resultset statement="SELECT * FROM bible.t_asv
>>> " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>> </row>
>>>
>>> ```
>>
>> You're missing a closing tag.
>
> I can store the ASV Bible in an array (I check for if the last
> book, chapter, and verse number instead of a closing tag). But
> I haven't figured out how to get it into the class's setup I've
> got.
Ok, got it working. Though didn't use any xml tools, just split
the xml file into lines, and went from there. I used my trace
function in a mixin for tracing what was happening, from simple
code I reuse in my programs - I shows the variable and its value
without having to write the variable twice.
```
g_bible = new Bible;
int b, c, v;
size_t j;
break0: do {
b = verses[j].b;
g_bible.m_books ~= new Book(bookNames[b-1]);
version(asvtrace)
mixin(trace("g_bible.m_books[$-1].m_bookTitle"));
do {
c = verses[j].c;
g_bible.m_books[$-1].m_chapters ~= new Chapter(c.to!string);
version(asvtrace)
mixin(trace("j
g_bible.m_books[$-1].m_chapters[$-1].m_chapterTitle".split));
do {
v = verses[j].v;
g_bible.m_books[$-1].m_chapters[$-1].m_verses ~= new
Verse(v.to!string);
g_bible.m_books[$-1].m_chapters[$-1].m_verses[$-1].verse =
verses[j].t;
version(asvtrace)
mixin(trace(("j
g_bible.m_books[$-1].m_chapters[$-1].m_verses[$-1].m_verseTitle" ~
"
g_bible.m_books[$-1].m_chapters[$-1].m_verses[$-1].verse").split));
j += 1;
if (j == verses.length)
break break0;
} while(verses[j].v != 1);
} while(verses[j+1].c != 1);
} while(true);
```
More information about the Digitalmars-d-learn
mailing list