xml - Haxe 与 XPath 有友谊吗?

标签 xml xpath xml-parsing haxe

我需要通过 XPath 获取一些 XML 节点,我该怎么做?

我尝试使用这个库https://github.com/djcsdy/haxe-xpath ,但是出了点问题https://github.com/djcsdy/haxe-xpath/issues/26

对于我的任务来说,xml-fast 并不是一个好的解决方案,因为它看起来比 XPath“稍差一些”,我认为:

js(xpath):

xml_doc.get('//project/classpaths/class[@path="' + src_path + '"]')

haxe(xml-fast):

(new Fast(xml_doc))).node.project.node.classpaths.nodes.class.filter(function (x:Fast) return x.has.path ? x.att.path == src_path : false)

谢谢

最佳答案

结果发现两个库,都需要一些修复。

1. "Haxe XPath"

仅当将目录“haxe-xpath/src/xpath”克隆到源中时才可以使用它(haxelib 存储库不包含此库)。

此库需要一些修复:thisthis

示例(删除第一个找到的元素):

package;

import xpath.XPathHx;
using Lambda;

class Main {
    public static function main () {
        var xml = Xml.parse("<a> <b> <c>qwe</c> <c>asd</c> </b> </a>");
        trace(xml.toString());

        var xpExpr = new XPathHx("//a/b/c"); // create new XPath expression object
        var result = xpExpr.selectNodes(xml).array()[0]; // get first element from array of founded xml-nodes

        result.parent.removeChild(result); // remove selected node from xml-tree
        trace(xml.toString());
    }
}

2. "xmlTools"

可以使用haxelib安装:

haxelib install xmlTools
haxelib install composure

Some fix was needed for this library (in my task)和一个nuance for xpath .

示例(删除第一个找到的元素):

package;

import xmlTools.XPath;
using Lambda;

class Main {
    public static function main () {
        var xml = Xml.parse("<a> <b> <c>qwe</c> <c>asd</c> </b> </a>");
        trace(xml.toString());

        var xpath  = new XPath(); // create new XPath expression object
        var result = xpath.resolve(xml, "*/a/b/c").array()[0]; // get first element from array of founded xml-nodes

        result.parent.removeChild(result); // remove selected node from xml-tree        
        trace(xml.toString());
    }
}

关于xml - Haxe 与 XPath 有友谊吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37528220/

相关文章:

java - 通过 XSLT 解析嵌套标签

xml - XSLT 是 Web 框架的好选择?

c# - 使用 XML 定义文件以编程方式创建 SharePoint 2010 内容类型

java - Java中的xml解析并写入另一个xml文件

selenium webdriver 中的 css 或 xpath 正则表达式

java - 如何在 java 中使用 XPath/JsonPath 更改 json 文件中的值

ios - XML 到对象 Objective-C

xml - XSLT - 使用 string-after 操作字符串的递归算法

Python xml - 删除空格以对齐 xml 文档

c# - 使用 XPath 选择包含文本的所有节点