php中的xmldiff问题
我在使用xmldiff包时遇到一些问题。我使用的是xmldiff包0.9.2;PHP 5.4.17;Apache 2.2.25 例如,我有两个xml文件:“from.xml”和“to.xml” 文件“from.xml”包含:php中的xmldiff问题,php,xml,xmldiff,Php,Xml,Xmldiff,我在使用xmldiff包时遇到一些问题。我使用的是xmldiff包0.9.2;PHP 5.4.17;Apache 2.2.25 例如,我有两个xml文件:“from.xml”和“to.xml” 文件“from.xml”包含: <?xml version="1.0" encoding="UTF-8"?> <root> <rott> <NDC>321</NDC> <NDC>123</NDC>
<?xml version="1.0" encoding="UTF-8"?>
<root>
<rott>
<NDC>321</NDC>
<NDC>123</NDC>
</rott>
</root>
我在“differences.xml”文件中得到结果:
321
请您对以下内容发表评论:
<dm:delete>
<NDC/>
</dm:delete>
来了
另外,请告知我是否有一种方法可以在不考虑xml节点顺序的情况下区分两个xml文件?您看到的是格式中的差异。从那一页开始: 用于输入子树相同的位置 代码段中的文档具有部分相同的子树。libdiffmark将执行的指令实际上是
- 删除整个子树
- 复制1个节点,这意味着两个文档中的节点相同,因此不要触摸它
- 插入1个新节点
谢谢。您看到的是格式中的差异。从那一页开始: 用于输入子树相同的位置 代码段中的文档具有部分相同的子树。libdiffmark将执行的指令实际上是
- 删除整个子树
- 复制1个节点,这意味着两个文档中的节点相同,因此不要触摸它
- 插入1个新节点
谢谢。您看到的是格式中的差异。从那一页开始: 用于输入子树相同的位置 代码段中的文档具有部分相同的子树。libdiffmark将执行的指令实际上是
- 删除整个子树
- 复制1个节点,这意味着两个文档中的节点相同,因此不要触摸它
- 插入1个新节点
谢谢。您看到的是格式中的差异。从那一页开始: 用于输入子树相同的位置 代码段中的文档具有部分相同的子树。libdiffmark将执行的指令实际上是
- 删除整个子树
- 复制1个节点,这意味着两个文档中的节点相同,因此不要触摸它
- 插入1个新节点
谢谢。如果文档结构已知,我想您可以简单地对必要的部分进行排序。这里有一个关于它的例子。基于此,我介绍了一些示例,可以按节点值对文档进行排序(仅举个例子),请看这里 documentlibrary.xml
<?xml version="1.0"?>
<library>
<book id="1003">
<title>Jquery MVC</title>
<author>Me</author>
<price>500</price>
</book>
<book id="1001">
<title>Php</title>
<author>Me</author>
<price>600</price>
</book>
<book id="1002">
<title>Where to use IFrame</title>
<author>Me</author>
<price>300</price>
</book>
<book id="1002">
<title>American dream</title>
<author>Hello</author>
<price>300</price>
</book>
</library>
jquerymvc
我
500
Php
我
600
在哪里使用IFrame
我
300
美国梦
你好
300
PHP代码,按
如果文档结构已知,我认为您可以简单地对必要的部分进行排序。这里有一个关于它的例子。基于此,我介绍了一些示例,可以按节点值对文档进行排序(仅举个例子),请看这里
documentlibrary.xml
<?xml version="1.0"?>
<library>
<book id="1003">
<title>Jquery MVC</title>
<author>Me</author>
<price>500</price>
</book>
<book id="1001">
<title>Php</title>
<author>Me</author>
<price>600</price>
</book>
<book id="1002">
<title>Where to use IFrame</title>
<author>Me</author>
<price>300</price>
</book>
<book id="1002">
<title>American dream</title>
<author>Hello</author>
<price>300</price>
</book>
</library>
jquerymvc
我
500
Php
我
600
在哪里使用IFrame
我
300
美国梦
你好
300
PHP代码,按
如果文档结构已知,我认为您可以简单地对必要的部分进行排序。这里有一个关于它的例子。基于此,我介绍了一些示例,可以按节点值对文档进行排序(仅举个例子),请看这里
documentlibrary.xml
<?xml version="1.0"?>
<library>
<book id="1003">
<title>Jquery MVC</title>
<author>Me</author>
<price>500</price>
</book>
<book id="1001">
<title>Php</title>
<author>Me</author>
<price>600</price>
</book>
<book id="1002">
<title>Where to use IFrame</title>
<author>Me</author>
<price>300</price>
</book>
<book id="1002">
<title>American dream</title>
<author>Hello</author>
<price>300</price>
</book>
</library>
jquerymvc
我
500
Php
我
600
在哪里使用IFrame
我
300
美国梦
你好
300
PHP代码,按
如果文档结构已知,我认为您可以简单地对必要的部分进行排序。这里有一个关于它的例子。基于此,我介绍了一些示例,可以按节点值对文档进行排序(仅举个例子),请看这里
documentlibrary.xml
<?xml version="1.0"?>
<library>
<book id="1003">
<title>Jquery MVC</title>
<author>Me</author>
<price>500</price>
</book>
<book id="1001">
<title>Php</title>
<author>Me</author>
<price>600</price>
</book>
<book id="1002">
<title>Where to use IFrame</title>
<author>Me</author>
<price>300</price>
</book>
<book id="1002">
<title>American dream</title>
<author>Hello</author>
<price>300</price>
</book>
</library>
jquerymvc
我
500
Php
我
600
在哪里使用IFrame
我
300
美国梦
你好
300
PHP代码,按
So,简而言之:有一个插入
,删除
,复制
,但没有一个移动
,因此这是由其他3个的组合来处理的。因此,简而言之:有一个插入
,删除
,复制
,但没有一个移动
,因此这是由其他3个组合来处理的
<?php
$dom = new DOMDocument();
$dom->load('library.xml');
$xp = new DOMXPath($dom);
$booklist = $xp->query('/library/book');
$books = iterator_to_array($booklist);
function sort_by_title_node($a, $b)
{
$x = $a->getElementsByTagName('title')->item(0);
$y = $b->getElementsByTagName('title')->item(0);
return strcmp($x->nodeValue, $y->nodeValue) > 0;
}
usort($books, 'sort_by_title_node');
$newdom = new DOMDocument("1.0");
$newdom->formatOutput = true;
$root = $newdom->createElement("library");
$newdom->appendChild($root);
foreach ($books as $b) {
$node = $newdom->importNode($b,true);
$root->appendChild($newdom->importNode($b,true));
}
echo $newdom->saveXML();
<?xml version="1.0"?>
<library>
<book id="1002">
<title>American dream</title>
<author>Hello</author>
<price>300</price>
</book>
<book id="1003">
<title>Jquery MVC</title>
<author>Me</author>
<price>500</price>
</book>
<book id="1001">
<title>Php</title>
<author>Me</author>
<price>600</price>
</book>
<book id="1002">
<title>Where to use IFrame</title>
<author>Me</author>
<price>300</price>
</book>
</library>