【发布时间】:2017-01-17 17:57:11
【问题描述】:
我有一个用 XSD 文件很好定义的 XML 文档。 xml文档包含类似如下内容:
<foo>
<bar>text <element a="1" b="2" c="3" /> and some more text</bar>
<bar>Just text</bar>
</foo>
我想使用 PHP 对其进行解析,以便将其中一个属性值(将在代码中的其他地方决定)与文本的其余部分内联,对于这个例子,我想要“B”和输出应该是:
"text 2 and some more text"
"Just text"
我在以这种格式获取输出时遇到问题,因为我找不到分割节点文本以便插入属性值或输出节点的纯 xml 的方法。
我的偏好是使用 PHP 的 DOMDocument 方法来执行此操作。虽然我还没有学习 XPath,但我愿意学习它,如果它能让这项任务成为可能。我也会考虑更改嵌套节点的格式,尽管这是最后的手段。
我正在使用 DOMdocument 来查找节点:
$xml= new DOMDocument();
$xml->load(XMLPATH);
$node = $xml->getElementsByTagName("element")->item(0);
那么下面所有的都忽略嵌套元素:
$node->nodeValue;
$node->C14N();
我也按照本指南无济于事: How to get innerHTML of DOMNode?
感谢您的帮助。
【问题讨论】:
-
到目前为止你做了什么?向我们展示代码!
-
我正在使用 DOMdocument 来查找节点:$xml= new DOMDocument(); $xml->load(XMLPATH); $node = $xml->getElementsByTagName("element")->item(0) 那么下面所有的都忽略嵌套元素: $node->nodeValue $node->C14N();我也按照本指南无济于事:stackoverflow.com/questions/2087103/…
-
@FelippeDuarte 已按要求更新
标签: php xml xpath domdocument