Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Xslt 如何在Java代码中定义Saxon 9.5 EE中的默认XPath命名空间?_Xslt_Saxon - Fatal编程技术网

Xslt 如何在Java代码中定义Saxon 9.5 EE中的默认XPath命名空间?

Xslt 如何在Java代码中定义Saxon 9.5 EE中的默认XPath命名空间?,xslt,saxon,Xslt,Saxon,如何定义xpath默认名称空间的等效名称空间,例如: <xsl:stylesheet version="2.0" xpath-default-namespace="http://schemas.xmlsoap.org/soap/envelope/" 不能从Java代码中更改默认xpath命名空间,只能从XSLT代码中更改 您说您不能编辑XSLT样式表,但您可以。它们是XML文档,可以进行转换,您可以使用转换语言和转换引擎。如果没有其他解决方法,请在执行样式表之前转换样式表。我不理解这个问

如何定义xpath默认名称空间的等效名称空间,例如:

<xsl:stylesheet version="2.0" xpath-default-namespace="http://schemas.xmlsoap.org/soap/envelope/"

不能从Java代码中更改默认xpath命名空间,只能从XSLT代码中更改


您说您不能编辑XSLT样式表,但您可以。它们是XML文档,可以进行转换,您可以使用转换语言和转换引擎。如果没有其他解决方法,请在执行样式表之前转换样式表。

我不理解这个问题,您的代码执行
text.xsl
,只要该文件具有
xpath默认名称空间=”http://schemas.xmlsoap.org/soap/envelope/“
XSLT处理器应该使用该指令。不是这样吗?或者您想运行一个没有
xpath默认名称空间=”的样式表吗http://schemas.xmlsoap.org/soap/envelope/“
但仍要定义XPath默认元素名称空间吗?@MartinHonnen我有一个XSL代码库,无法编辑XSL。我想运行一个没有设置having xpath默认名称空间的样式表,但我仍然想在用于执行该XSL的Java代码中定义xpath默认名称空间。
public String transform(String request) {
    try {
        ProfessionalConfiguration config = new ProfessionalConfiguration();
        config.setExtensionElementNamespace("http://yeah.com", "com.MyFactory");
        config.registerExtensionFunction(new MyVariable());

        EnterpriseTransformerFactory factory = new EnterpriseTransformerFactory();
        factory.setConfiguration(config);

        Source xslt = new StreamSource(new File("text.xsl"));
        Transformer transformer = factory.newTransformer(xslt);

        Source input = new StreamSource(new File("test.xml"));
        StringWriter result = new StringWriter();
        transformer.transform(input, new StreamResult(result));

        return result.toString();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}