iT邦幫忙

0

<search index="0" offset="0"><![CDATA[

  • 分享至 

  • xImage

請問該如何解讀
<![CDATA[

的意思,謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
暐翰
iT邦大師 1 級 ‧ 2019-05-27 08:31:48
最佳解答

因為在XML中 <,&是不准許的,轉換xml時會報錯
這時候會使用![CDATA[做標記避免此問題

像是java hibernate就常使用此標記,避免sql比較符導致xml格式錯誤

    <sql-query name="table">
        <![CDATA[
            select * from table where id < 10001 
          ]]>
    </sql-query>

新的問題:

我用的是opencart,這是完整的code:

<operation>
	<search index="0" offset="0">
		<![CDATA[
			if (!empty($data['filter_email'])) {
		]]>
	</search>

	<add position="before">
		<![CDATA[
			if (!empty($data['filter_company'])) {
				$implode[] = "a.company LIKE '%" . $this->db->escape($data['filter_company']) . "%'";
			}
		]]>
	</add>
</operation>

回答:

總結意思是 : 搜尋字串包含 if (!empty($data['filter_email'])) { 的第一組資料,在它之前添加以下程式碼:

if (!empty($data['filter_company'])) {
	$implode[] = "a.company LIKE '%" . $this->db->escape($data['filter_company']) . "%'";
}

舉例:

原始php代碼如下

if (!empty($data['filter_email'])) {
	//Logic
}
if (!empty($data['filter_email'])) {
	//Logic
}

系統會生成

if (!empty($data['filter_company'])) {
	$implode[] = "a.company LIKE '%" . $this->db->escape($data['filter_company']) . "%'";
}
if (!empty($data['filter_email'])) {
	//Logic
}
if (!empty($data['filter_email'])) {
	//Logic
}
看更多先前的回應...收起先前的回應...
titanlin iT邦新手 5 級 ‧ 2019-05-27 11:05:30 檢舉

抱歉,我的問題應該是得意思?因為我看到大部分是而已,所以加了index 和 offset有不一樣嗎?主要的意思是什麼?謝謝

暐翰 iT邦大師 1 級 ‧ 2019-05-27 11:15:41 檢舉

titanlin

所以加了index 和 offset有不一樣嗎?

一定不一樣
xml只是資料結構,邏輯實現程式,規格書沒有說明該屬性代表意思?


舉例:

我可以設定search index=1預設從第1頁查詢

<search index="1">
<![CDATA[
	select * from table 
]]>
</search>

設定search index=2預設從第2頁查詢

<search index="2">
<![CDATA[
	select * from table 
]]>
</search>
titanlin iT邦新手 5 級 ‧ 2019-05-27 11:23:25 檢舉
<operation>
	<search index="0" offset="0"><![CDATA[
		if (!empty($data['filter_email'])) {
	]]></search>
		<add position="before"><![CDATA[
			if (!empty($data['filter_company'])) {
			$implode[] = "a.company LIKE '%" . $this->db->escape($data['filter_company']) . "%'";
			}
	]]></add>
</operation>

這是完整的code

暐翰 iT邦大師 1 級 ‧ 2019-05-27 11:46:18 檢舉

titanlin
我更新回應在內文

titanlin iT邦新手 5 級 ‧ 2019-05-29 12:53:03 檢舉

太棒了,謝謝您的幫忙! Opencart您熟嗎?

我要發表回答

立即登入回答