【问题标题】:Storing complex XML values in PHP在 PHP 中存储复杂的 XML 值
【发布时间】:2010-10-14 21:08:02
【问题描述】:

考虑这个假设的 xml:

<myApi xmlns="urn:something" xmlns:bla="urn:hello">
  <argument1>foo</argument1>
  <argument2>
     <p xmlns="http://www.w3.org/1999/xhtml">Some paragraph of text. <img src="http://www.example.org/hello.png" bla:test="oi" /></p>
  </argument2>
</myApi>

在 PHP 中解析第二个参数的最佳方法是什么。完整的 xml 结构必须存储在数据库中,但必须考虑到它可以引用文档中更高层已经声明的 xml 命名空间。

有没有一种好方法可以使用任何现成的 PHP 解析库取出一大块 XML,并存储所有语义信息?

【问题讨论】:

    标签: php namespaces xml-namespaces


    【解决方案1】:

    您看过 SimpleXML 吗?它会在不验证的情况下进行解析,因此您可以将任何格式正确的 XML 扔给它,并自己整理出有效和无效的标签。您还可以提取任何级别的 XML 片段。它唯一有点挣扎的是命名空间。

    【讨论】:

    • 命名空间对我来说很重要。 SimpleXML 只会给我一个片段的“子字符串”,但片段不一定必须是有效的(缺少命名空间)。
    • AFAIK,它的限制是创建标签作为命名空间的一部分。有办法做到这一点,但我听说这有点尴尬。我没有使用 SimpleXML 来处理命名空间标签,注意,只是普通的、未经验证的 XML,它可以很好地处理它。
    猜你喜欢
    • 2019-01-05
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多