以下是示例xml字符串:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tbl_Main">
<thead>
<tr>
<th><input type="checkbox" />A</th>
<th><input type="checkbox" />B</th>
<th><input type="checkbox" />C</th>
<th><input type="checkbox" />D</th>
</tr>
</thead>
<tbody>
<tr>
<td>01</td>
<td>02</td>
<td>03</td>
<td>04</td>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
</tbody>
</table>
<input type="submit" id="btn_generate" value="Generate" />
<br />
<table id="tbl_Child">
</table>
我想检查所有元素是否包含PO和DestRule属性,否则,打印为false,否则打印为true。
可以SQL服务器那样做,如何编写SQL语句?
答案 0 :(得分:0)
试试这个:
DECLARE @xml xml = '<R RMA="1" UsrID="AXxxx" FirstName="xx" LastName="yy" Email="dd" title="">
<Contract ContractNr="xxx1" ETC="" TermRC="" DESC="" INVCOMMENT="" TermDate="03/01/2014" PO="XXX" DestRule="xxxx">
<Asset ID="12345" AXID="abcde" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
<Asset ID="67890" AXID="abcde1" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
</Contract>
<Contract ContractNr="xxx2" ETC="" TermRC="" DESC="" INVCOMMENT="" TermDate="03/01/2014" DestRule="xxxx">
<Asset ID="54321" AXID="edcba" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID="" />
<Asset ID="09876" AXID="edcba1" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID="" />
</Contract>
<Contract ContractNr="xxx1" ETC="" TermRC="" DESC="" INVCOMMENT="" TermDate="03/01/2014" PO="XXX" >
<Asset ID="12345" AXID="abcde" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
<Asset ID="67890" AXID="abcde1" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
</Contract>
<Contract ContractNr="xxx1" ETC="" TermRC="" DESC="" INVCOMMENT="" TermDate="03/01/2014" >
<Asset ID="12345" AXID="abcde" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
<Asset ID="67890" AXID="abcde1" RecvdDt="05/02/2014" ReconDt="05/02/2014" ReceiptID=""/>
</Contract>
</R>'
IF EXISTS
(
SELECT NULL
FROM @xml.nodes('/R/Contract') X(Contract)
WHERE Contract.value('@PO', 'varchar') IS NULL
OR Contract.value('@DestRule', 'varchar') IS NULL
)
BEGIN
PRINT 'some contracts do not have PO or DestRule'
END
ELSE
BEGIN
PRINT 'OK'
END