XFormsを使用して、XML-DB eXist-dbをバックエンドとして使用してWebアプリケーションを構築しています。 eXistはXFormsコードをHTMLとJavaScriptに変換します。私は「結果」インスタンス内のすべての<ServiceDefinition>
の要素を反復処理するxf:repeat
を使用して、テーブルを構築したいXForms repeat - JavaScriptエラー
<xf:instance xmlns="" id="results">
<result>
<ServiceDefinition>
<InventoryLabel LastChange="2012-01-24">SVC380712435</InventoryLabel>
<SystemName IPaddress="111.222.333.123">XXX</SystemName>
<Service ServiceCategory="Internetservice">Web-Server</Service>
<OSClass OperatingSystem="CentOS">UNIX</OSClass>
<SystemType Manufacturer="VMware">VM</SystemType>
<Backup/>
<Location SystemContact="Max Power" AdminGroup="power">N22</Location>
</ServiceDefinition>
....
</result>
</xf:instance>
<xf:instance xmlns="" id="domain">
<system name="XXX">
<NIC MAC="00-50-56-ae-00-3c"
time="1329167846" missed="1323350247" state="inactive"
IP="111.222.333.123" LAN="Test"/>
</system>
...
</xf:instance>
:
まず第一に、私は2つのインスタンスを得ました。すべての行には、「ドメイン」インスタンスから関連する「状態」情報を入力する「ステータス」列が含まれています。
これは、テーブルのXFormsのコードです:
<div class="table">
<table border="0">
<thead>
<tr>
<th class="sysName">Hostname</th>
<th class="services">Service</th>
<th class="os">OS Class</th>
<th class="location">Location</th>
<th class="link">Details</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<xf:repeat nodeset="instance('results')/result/ServiceDefinition" id="link-repeat">
<tr>
<td class="sysName"><xf:output ref="SystemName" /></td>
<td>
<xf:repeat nodeset="Service" class="row">
<div>
<xf:output ref="."/>
</div>
</xf:repeat>
</td>
<td class="os"><xf:output ref="OSClass"/> </td>
<td class="location"><xf:output ref="Location" /></td>
<td class="link">
<xf:trigger submission="view-entry" appearance="minimal" class="url">
<xf:label>View</xf:label>
<xf:action ev:event="DOMActivate">
<xf:setvalue ref="instance('URL-container')"
value="concat('serviceDetails.xql?svc=', instance('results')/result/ServiceDefinition[index('link-repeat')]/InventoryLabel)"/>
<xf:load ref="instance('URL-container')" />
</xf:action>
</xf:trigger>
</td>
<td>
<xf:output ref="instance('domain')/system[@name = instance('results')/result/ServiceDefinition[index('link-repeat')]/SystemName]/NIC/@state" />
</td>
</tr>
</xf:repeat>
</tbody>
</table>
</div>
問題は、この部分のようだ:
<td>
<xf:output ref="instance('domain')/system[@name = instance('results')/result/ServiceDefinition[index('link-repeat')]/SystemName]/NIC/@state" />
</td>
はこの表現に何か問題はありますか?私は、repeatステートメントの現在のノードと一致するシステムの状態属性を取得したい。常に異なります(この場合は771で)
A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.
Script: http://test:8080/exist/xforms/xsltforms/xsltforms.js:771*
ライン:私はページと「results'-インスタンスは、多くの項目で構成されてロードするとき は、しかし、私は、JavaScriptのエラーが発生します。
結果インスタンスが非常に小さい(約20要素まで)場合、期待どおりに動作します。
何か助力やご意見をいただければ幸いです。