我有简单的xml文件,有一个或多个节点,例如:
<?xml version='1.0' standalone='yes'?>
<nodes>
<node>
<value>Val1</value>
</node>
</nodes>
有没有可能,使用simplexml_load_string()
函数,对于一个节点的文件(如上所述)得到:
SimpleXMLElement Object
(
[node] => Array
(
[0] => SimpleXMLElement Object
(
[value] => Val1
)
)
)
使用[0]键,与具有更多节点的xml文件类似,而不是:
SimpleXMLElement Object
(
[node] => SimpleXMLElement Object
(
[value] => Val1
)
)
因为接下来我需要将它转换为具有相同深度的数组,无论是来自具有一个或多个节点的文件
SimpleXML已经做了您想要做的事情-两者之间的区别仅在于print\r
的输出,它显示了访问元素的最简洁的方式,而不是唯一的方式。
具体来说,$xml-
这就是为什么“盲目”将XML结构转换为PHP数组通常是个坏主意——相反,使用
Foreach
循环和属性访问来提取您需要的任何信息。
您可以使用以下代码自己尝试:
// Single node
$xml1 = <<<XML
<?xml version='1.0' standalone='yes'?>
<nodes>
<node>
<value>Val1</value>
</node>
</nodes>
XML;
$sx1 = simplexml_load_string($xml1);
print_r($sx1); // misleading!
echo $sx1->node->value, PHP_EOL;
echo $sx1->node->value[0], PHP_EOL;
echo $sx1->node[0]->value[0], PHP_EOL;
echo $sx1->node[0]->value, PHP_EOL;
foreach ( $sx1->node as $node ) {
echo $node->value, PHP_EOL;
}
// Two nodes with same name
$xml2 = <<<XML
<?xml version='1.0' standalone='yes'?>
<nodes>
<node>
<value>Val1</value>
</node>
<node>
<value>Val2</value>
</node>
</nodes>
XML;
$sx2 = simplexml_load_string($xml2);
print_r($sx2); // misleading!
echo $sx2->node->value, PHP_EOL;
echo $sx2->node[0]->value, PHP_EOL;
echo $sx2->node[0]->value[0], PHP_EOL;
echo $sx2->node->value[0], PHP_EOL;
foreach ( $sx2->node as $node ) {
echo $node->value, PHP_EOL;
}
我有一个XML文件: 我想使用XSLT将其转换为have: 我的文件: 但是我的输出文件中没有根节点。如何做到这一点? 还有,这是一个好的方法来进行转换吗?堆叠几个模板?
所以我有一个如下的xml文件: 并有另一个xml文件,如下所示: 使用xslt,如何将第二个文件中的两个元素添加到第一个文件中的student元素中?换句话说,如何创建如下所示的文件: 如果使用xslt是不可能的,那么使用XPath是可行的吗? 非常感谢!
“n”表示标记名称的名称,“v”表示标记的值 我应该在XSLT中指定什么?
您能帮助如何用子节点分割成半节点吗? 输入: 输出: 不幸的是,我对xslt没有经验,也没有找到这样的例子。 更新后,我尝试了下面建议的方法之一,并有这个https://xsltfiddle.liberty-development.net/jyH9rNq/3节点不复制 xslt: 输出:
问题内容: 如何使用simpleXML在xml文件中编辑值? 我知道如何创建文件,但不知道如何编辑现有文件中的值? 问题答案: 确保可以使用SimpleXML进行编辑: 看一下例子。
主要内容:什么是 PHP SimpleXML?,安装,PHP SimpleXML 实例,实例 1,实例 2,实例 3,更多 PHP SimpleXML 的信息PHP SimpleXML 处理最普通的 XML 任务,其余的任务则交由其它扩展处理。 什么是 PHP SimpleXML? SimpleXML 是 PHP 5 中的新特性。 SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。 与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XM