Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用js和或php查找xml节点之间的关系 这是一个推测性的问题,关于你们都认为是我遇到的一个特定问题的最佳方法或最聪明的方法。_Php_Xml_Relationship_Traversal_Similarity - Fatal编程技术网

使用js和或php查找xml节点之间的关系 这是一个推测性的问题,关于你们都认为是我遇到的一个特定问题的最佳方法或最聪明的方法。

使用js和或php查找xml节点之间的关系 这是一个推测性的问题,关于你们都认为是我遇到的一个特定问题的最佳方法或最聪明的方法。,php,xml,relationship,traversal,similarity,Php,Xml,Relationship,Traversal,Similarity,我目前正在开发一个web应用程序,它主要由一个巨大的XML树驱动。该应用程序的要点是根据节点之间的关系随机生成适当的节点序列 节点的分类非常好,但是初始选择需要很大程度上是随机的,接下来的选择基于第一个节点。选择应该是随机的,但每个选择之间不应该有明显的逻辑相似性 例如,给定以下树: <things> <foods> <fruits> <fruit>apple</fruit>

我目前正在开发一个web应用程序,它主要由一个巨大的XML树驱动。该应用程序的要点是根据节点之间的关系随机生成适当的节点序列

节点的分类非常好,但是初始选择需要很大程度上是随机的,接下来的选择基于第一个节点。选择应该是随机的,但每个选择之间不应该有明显的逻辑相似性

例如,给定以下树:

<things>
    <foods>
        <fruits>
            <fruit>apple</fruit>
            <fruit>orange</fruit>
            <fruit>melon</fruit>
            <fruit>banana</fruit>
            <fruit>grape</fruit>
        </fruits>
        <vegetables>
            <vegetable>potato</vegetable>
            <vegetable>carrot</vegetable>
            <vegetable>onion</vegetable>
            <vegetable>leek</vegetable>
        </vegetables>
    </foods>
    <animals>
        <birds>
            <bird>penguin</bird>
            <bird>ostrich</bird>
            <bird>parrot</bird>
            <bird>crow</bird>
            <bird>emu</bird>
        </birds>
        <fish>
            <fish>cod</fish>
            <fish>plaice</fish>
            <fish>salmon</fish>
            <fish>shark</fish>
            <fish>tuna</fish>
        </fish>
    </animals>
</things>

苹果
橙色
甜瓜
香蕉
葡萄
马铃薯
胡萝卜
洋葱
韭菜
企鹅
鸵鸟
鹦鹉
乌鸦
欧洲经济与货币同盟
鳕鱼
鲽
鲑鱼
鲨鱼
金枪鱼
。。。如果选择的第一个项目是鲨鱼,那么金枪鱼是近亲,尽管鸟类类别中的项目也可以访问,因为它有一定的相似性-它是一种生物。然而,蔬菜是完全不相关的,不应该被选择

考虑到我的xml树是绝对巨大的,我需要一种智能的方法来执行相似性检查

非常感谢您的任何想法、意见或指导。我已经在这方面寻找了解决方案,但到目前为止,我几乎没有找到什么解决方案


提前谢谢

相当大,一个8.5MB的文件!。。。你打算在飞行中使用这个?这就是为什么我说数据映射/属性标记并将其全部存储在数据库中会更有效


我看到每个
都有一个
wnid
和word,并包含所有
标记,这些标记是它的一个子集。这些建议就是这样产生的。比如说,
Shark
被选中……然后我们可以搜索属性中包含该单词的最顶端的
sysnet
节点(
gloss
?),然后从该标记中的
sysnet
标记中选择所有单词……可以用作“类似项”…

你是如何发现高级英语中的相似性的?我想在我的例子中,这实际上不是单词之间的关系问题,而是根据单词之间的接近程度来估计单词之间的联系。XML结构非常密集,由许多类别和子类别组成,其中许多类别和子类别相互交织。我曾考虑过对所有元素进行潜在的索引,因为xml结构不太可能经常更改,然后基于所选对象的索引,比较相关的父项。听起来像是所有实体的
数据映射
/
属性标记
练习,并根据标记匹配等选择
类似项
。@Pushpesh在这种情况下,您通常如何处理该问题?我有一个xml树,它是一个静态文件,大概每年都会改变。xml可以在以下位置找到:您将看到加载该文件需要一段时间,因为该文件非常庞大,但类别和子类别所代表的内容相对清晰。该文件相当大。顺便说一句,请看我的帖子。谢谢你的回复。是的,我知道这个文件是巨大的:)我从来没有打算在飞行中调用文件本身,不要担心,我想我会杀死我的服务器不断这样做。我只是想对文件进行一次解析,并以一种更有效的方式存储结果。我以前曾想过gloss方法,但问题是封闭的语法集通常不会引用有问题的项,而是描述类别。我曾想过单步遍历xml,并为每个节点索引其沿袭,例如[synset group 1]->[child group 4]->[child group 3]->[child group 4]。我原以为这将允许我递归地比较每个选定项的父项