【发布时间】:2015-04-27 12:37:29
【问题描述】:
我正在尝试从数据库表中创建以下 XML。这是 XML
<groups>
<group id="1" name="DEBUG"/>
<group id="2" name="ORSP">
<group id="3" name="PRE">
<group id="4" name="TRANS"/>
<group id="5" name="OPP"/>
</group>
<group id="6" name="POST">
<group id="7" name="DGM"/>
</group>
</group>
</groups>
这是数据库的简单表
GROUP_ID | GROUP_NAME | GROUP_PARENT
1 DEBUG NULL
2 ORSP NULL
3 PRE 2
4 TRANS 3
5 OPP 3
6 POST 2
7 DGM 6
这是我当前的代码。我正在尝试返回一个 DomElement,但是我永远无法获得上述 XML。使用字符串我能够生成 XML。欢迎任何建议。
public function process(){
$xml = '<groups>';
$xml .= $this->getAllGroups();
$xml .= '</groups>';
return $xml;
}
public function getAllGroups($groupID=null){
$where = null;
$placeholder = array();
$xml = null;
if (is_null($groupID)){
$where = " GROUP_PARENT IS NULL ";
}
else {
$where = " GROUP_PARENT=?";
$placeholder=array($groupID);
}
$sql = "SELECT
GROUP_ID,
GROUP_NAME
FROM
GROUPS
WHERE
$where";
$data = $this->dbh->executeSql($sql,$placeholder);
foreach ($data["records"] as $row) {
$groupID = $row["GROUP_ID"];
$groupName = $row["GROUP_NAME"];
//$groupElement = $this->xml->createElement("group");
//$groupElementID = $this->xml->createAttribute("id");
//$groupElementName = $this->xml->createAttribute("name");
//$groupElementID->value = $groupID;
//$groupElementName->value = $groupName;
//$groupElement->appendChild($groupID);
//$groupElement->appendChild($groupName);
//$passedXML->appendChild($groupElement);
//$this->getAllGroups($groupID);
$xml .= "<group id='$groupID' name='$groupName'>";
$xml .= $this->getAllGroups($groupID);
$xml .= "</group>";
}
return $xml;
}
【问题讨论】:
-
我认为您应该发布要修复的代码,而不是有效的代码。