У меня есть два файла XML, один из которых - это база данных слов, а один - текст, который я хочу сопоставить с базой данных. Я пробовал несколько подходов, из которых никто не достиг желаемого результата.У меня есть список слов и текст, который я хочу сопоставить и присваивать элементам с атрибутами
Скажем, у нас есть эти два файла:
database.xml
<?xml version="1.0" encoding="UTF-8"?>
<wordbase>
<word>
<paragraph>1</paragraph>
<line>1</line>
<wordno>1</wordno>
<trans>hello</trans>
</word>
<word>
<paragraph>2</paragraph>
<line>1</line>
<wordno>2</wordno>
<trans>example</trans>
</word>
<word>
<paragraph>2</paragraph>
<line>1</line>
<wordno>2</wordno>
<trans>this</trans>
</word>
</wordbase>
и этот второй файл text.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p>
<l>hello</l>
</p>
<p>
<l>this example</l>
</p>
</root>
В итоге я хочу получить это:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p>
<l><w paragraph="1" line="1" wordno="1">hello</w></l>
</p>
<p>
<l><w paragraph="2" line="1" wordno="1">this</w> <w paragraph="2" line="1" wordno="2">example</w></l>
</p>
</root>
XSL не нужно считать абзацы или строки. Я просто хочу, чтобы он зашел в файл test.xml и проверил слова. Он читает «привет», переходит к базе данных.xml, проверяет «привет» и назначает атрибуты paragraph, line, wordno, которые он находит там.
Я не могу вносить образец XSL, и я знаю, что это плохая форма, но я не достиг многого. У меня было несколько подходов, но ничего не получилось. Я попробовал это с помощью функции document, xsl: sort, xsl: analzye-string, xsl: for-each group, xsl: tokenize. Я думаю, что ответ лежит где-то в этих подходах.
Я надеюсь, что кто-то может мне помочь.
Спасибо и прощай!