この作業がやや非正統的であることは承知していますが、誰かが私を助けてくれることを願っています. 製品の XML ファイルに基づいて、XQuery を使用して有効な Latex ファイルを作成しようとしています。XML ファイル (xml/products.xml) は次のようになります。
<?xml version="1.0"?>
<Products>
<Maker name = "A">
<PC model = "1001" price = "2114">
<Speed> 2.66 </Speed>
<RAM> 1024 </RAM>
<HardDisk> 250 </HardDisk>
</PC>
これは私が必要とするラテックス出力です:
\documentclass[]{article}
\begin{document}
\begin{center}
\begin{tabular}{| l | l |}
\hline
Price & Model \\ \hline
price value & model value \\ \hline
\end{tabular}
\end{center}
\end{document}
そして、必要な Latex を生成するために、次の (文字エスケープ) XQuery を作成しました。
let $oc := "{" (: for { :)
let $cc := "}" (: for } :)
let $space := " " (: space :)
let $tab := "	" (: tab :)
let $ampersand := "&" (: ampersand :)
\\documentclass\[\]{$oc}article{$cc}
\\begin{$oc}document{$cc}
\\begin{$oc}center{$cc}
\\begin{$oc}tabular{$cc}{$oc}| l | l |{$cc}
\\hline
Model{$ampersand}Price{$space}\\\\{$space}\\hline
{for $pc in doc("xml/products.xml")/Products/Maker/PC
let $price:=data($pc/@price)
let $model:=data($pc/@model)
return
{$model}{$ampersand}{$price} \\\\ \\hline
}
\\end{$oc}tabular{$cc}
\\end{$oc}center{$cc}
\\end{$oc}document{$cc}
クエリを実行できません.. :(. そしていつものように、XQuery は続行するためのデバッグ情報をあまり提供しません.XQuery を使用して文字をエスケープするスマートな方法はありますか?それとも、単にテキストを直接出力するだけでしょうか?