【问题标题】:SimpleXml how to correctly set encoding and xmins?SimpleXml 如何正确设置编码和 xmls?
【发布时间】:2011-05-13 13:05:05
【问题描述】:

关于如何让 PHP SimplXMLElement 启动以下内容有什么想法吗?

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">

主根将是:

<Document></Document>

还是我使用 simplexml_load_string() 来设置它?

上下文:我正在扩展 simpleXmlElement 以创建一些 kml 文件。

编辑

实际上,设置 kml xmlns 很容易做到:

new simpleXMLElement('<kml xmlns="http://earth.google.com/kml/2.2">
<Document></Document></kml>');

只是如何设置困扰我的 encoding="UTF-8",似乎没有那个 kml 是可以接受的,但我仍然想了解如果 pos 怎么做。

【问题讨论】:

    标签: php xml encoding simplexml


    【解决方案1】:
    new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>'
                              .'<kml xmlns="http://earth.google.com/kml/2.2">'
                              .'<Document></Document></kml>');
    

    【讨论】:

    • 天哪,多么简单。我想我自己正在慢慢到达那里。所以考虑它的方式是,如果你没有在构造函数中隐式传递 字符串,它只会为你喷射 。干杯奥兹,不错的一个。我错误地认为我必须以某种方式处理属性。
    • 这可能很明显,但生成的$root = new SimpleXML... 元素不会自动指向Document,因此$root-&gt;addChild(...) 会在其旁边添加内容——参见示例sandbox.onlinephpfunctions.com/code/…跨度>
    • 为了解释更多关于@drzaus 注释的内容,它并不指向Document,因为字符串xml 中的根元素是元素kml,其中Document 是其子元素.
    • 仅添加“encoding="UTF-8" 不会使生成的 XML UTF-8、答案不正确或标题不清楚。
    • 以上对我不起作用,但这样做:$xml = new \SimpleXMLElement('&lt;xml version="1.0" encoding="UTF-8"/&gt;');
    猜你喜欢
    • 2016-02-13
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 2021-09-10
    • 2019-02-04
    相关资源
    最近更新 更多