我正在Zend Framework上构建一个应用程序,现在需要操作一个xml文件并更改它的一些内容,以便我可以使用xml作为请求文件来获取其他服务器的响应。现在经过谷歌搜索后,我看到simplexml比其他人更受欢迎,但我不确定哪种实现对Zend Framework更好。任何建议都会非常有帮助。 我的请求XML文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<aa>
<bb>
<cc>
<dd>
<ee/>
</dd>
<ff>
<Identification _FirstName="******" _LastName="*****" _Num="********">
<gg/>
</Identification>
</ff>
</cc>
</bb>
</aa>
现在,我需要能够更改_FirstName,_LastName和Num的值。我应该使用哪种XML操作方法与Zend Framework以及如何使用?
提前致谢。
答案 0 :(得分:1)
Zend Framework提供了Zend_DOM
library,它基于PHP's native DOM extension(我的联系):
Zend_Dom
提供了处理DOM文档和结构的工具。目前,我们提供Zend_Dom_Query
,它提供了使用XPath和CSS selectors查询DOM文档的统一界面。
如果您不需要选择器,则不需要Zend_DOM
,但可以使用native XML extensions中的任何一个。
参考指南中解释了如何使用Zend_DOM
:
要使用
Zend_Dom_Query
,您可以实例化Zend_Dom_Query
对象,可选择将文档传递给查询(字符串)。获得文档后,您可以使用query()
或queryXpath()
方法;每个方法都将返回一个Zend_Dom_Query_Result
对象,其中包含任何匹配的节点。
简而言之:
$dom = new Zend_Dom_Query($xmlString);
$results = $dom->query('Identification');
$identification = $results->current();
然后 $ identification将包含DOMElement
,您可以像其他任何DOMElement
一样进行更改。在how to change values in an XML file上的StackOverflow上有很多例子,所以我在此不再重复。
更改DOMElement
后,您需要获取DOMDocument
以将已更改的文档序列化为XML。为此,您可以使用
$doc = $identification->ownerDocument;
$doc->save('filename.xml'); // to save it to a file
$xmlString = $doc->saveXML(); // to save it to a variable
有关X(HT)ML解析器的概述,请参阅
答案 1 :(得分:0)
最好使用以下结构:
<Identification>
<FirstName>*****</FirstName>
<LastName>*****</LastName>
<Num>*****</Num>
</Identification>
并使用Zend_Config_Xml类:http://framework.zend.com/manual/en/zend.config.adapters.xml.html