【发布时间】:2015-05-14 05:28:39
【问题描述】:
我有一个类似这样的表格。
<form id="formPropiedades" name="formPropiedades" method="post" action="./index.php">
<table width="70%" cellpadding="2" border="1" style="margin: 0 auto;margin-bottom:70px" class="parametros">
<caption>
<h1>Parámetros generales de la plantilla</h1>
</caption>
<tbody>
<tr>
<th colspan="2">Campo</th>
<th colspan="6">Filtro</th>
</tr>
<tr class="row">
<td class="dbList" colspan="2">Address</td>
<td colspan="6">
<input type="text" style="width: 100%;border: solid 1px black;" name="inp[]" value="">
<select id="tablaCampo1" class="tablaCampo1" name="tablaCampo1">
<option value="SALTEST.ANUNCIO.ID_CIUDAD">SALTEST.ANUNCIO.ID_CIUDAD</option>
<option value="SALTEST.ANUNCIO.CIUDAD">SALTEST.ANUNCIO.CIUDAD</option>
<option value="SALTEST.ANUNCIO.MUNICIPIO">SALTEST.ANUNCIO.MUNICIPIO</option>
<option value="SALTEST.ANUNCIO.ID_ESTADO">SALTEST.ANUNCIO.ID_ESTADO</option>
<option value="SALTEST.ANUNCIO.ESTADO">SALTEST.ANUNCIO.ESTADO</option>
<option value="SALTEST.ANUNCIO.ID_MUNICIPIO">SALTEST.ANUNCIO.ID_MUNICIPIO</option>
</select>
<button class="makeStrng" type="button">+</button>
</td>
</tr>
<tr>
<td align="right" colspan="8">
<input type="button" id="guardarBtn" value="guardar" name="guardar" style=" float:left">
<input type="button" id="step1" value="prev" name="prev">
<input type="submit" id="propiedades" value="Enviar" name="submitme">
</td>
</tr>
</tbody>
</table>
</form>
所以 select 中的选项实际上是 XML 中的列。这具有相应字段的数据
给你一个想法,xml看起来像这样
<SALTEST>
<ANUNCIO>
<CIUDAD>Some Name</CIUDAD>
<MUNICIPIO>SOme Name </MUNICIPIO>
<ESTADO>Some name </ESTADO>
</ANUNCIO>
<ANUNCIO>
<CIUDAD>Some Name</CIUDAD>
<MUNICIPIO>SOme Name </MUNICIPIO>
<ESTADO>Some name </ESTADO>
</ANUNCIO>
<SALTEST>
用户将使用选择选项并创建一个字符串,该字符串将具有创建内容的设置
例如
要创建地址字符串,用户将保存这样的设置。
字符串1:
<fld>SALTEST.ANUNCIO.ESTADO </fld><fld>SALTEST.ANUNCIO.MUNICIPIO </fld><fld>SALTEST.ANUNCIO.CIUDAD</fld>
STRING2
<fld>SALTEST.ANUNCIO.ESTADO</fld><ltr>,</ltr> <fld>SALTEST.ANUNCIO.MUNICIPIO</fld><ltr>,</ltr><fld>SALTEST.ANUNCIO.CIUDAD</fld>
STRING3:
<fn>if(<fld>SALTEST.ANUNCIO.ID_CIUDAD</fld>,<fld>SALTEST.ANUNCIO.ID_CIUDAD</fld>,"<",<fld>SALTEST.ANUNCIO.ID_CIUDAD</fld>)</fn>
所以基本上字符串会有三种类型的分隔符。
1.<fld></fld>
这些是要从 XML 中使用的字段。
2.<fn></fn>
这些之间的任何东西都是一个函数,我告诉系统将它检测为一个函数
3.<ltr></ltr>
这些之间的任何东西都是必须用来分隔每个的字符
例如:
<fld>SALTEST.ANUNCIO.ESTADO</fld><ltr>,</ltr> <fld>SALTEST.ANUNCIO.MUNICIPIO</fld><ltr>,</ltr><fld>SALTEST.ANUNCIO.CIUDAD</fld>
应该给 某个名字,某个名字,某个名字。
我必须编写一个 PHP 脚本来检测每种类型的字符串,然后应用相关功能
【问题讨论】:
-
不要进行字符串操作。使用 XML DOM 解析器解析
STRING2和STRING3。 -
@Barmar 但这些只是普通字符串,
<fld>等标签只是假设性的。我刚才创建是为了更好地解释我的概念。但我将研究如何使用 XM DOM 解析器 -
由于它们的格式类似于 XML/HTML 标签,您可以使用 DOM 解析器来解析它们。
-
虽然 OP 的字符串与 XML 非常相似,但我看到标签之间的字符我假设他打算保留 - 我不确定这是否可以使用 DOM 解析器来完成......
-
@PeterBowers 当然可以,它们将在文本节点中。