我有一组XML文件,我正在使用XSL转换处理.它们有一个默认的命名空间,所以我的XSL转换必须包含声明:
XPath的默认名称空间= "瓮:CZ-RVV-IS-VAV-XML-NS:数据1.2.2"
问题是这个值不时变化,我的变换突然停止工作,直到我从新文件中查看一个例子,提取这个命名空间ID并将其放入变换中,从而转换停止对旧文件起作用.有没有办法将其作为参数传递,或者在运行时以某种方式设置它?我已经尝试了在各种教程中查找的参数语法,但没有一个适用于此特定用途.
我搜索了各种各样的论坛,发现了对XSL的命名空间不可知编码的引用,但没有弄清楚如何去做.Ian Williams的书"XSLT和Xpath"声明必须声明默认命名空间,或者输出流中没有任何内容,这就是它对我有用的方式.但是我真的不想经常手工改变这个,我想给用户一些有用的东西,而不需要我的关注.
到目前为止,我发明的唯一100%可靠的方法是使用标准编程语言将XML源和XSL转换作为文本文件打开,从XML源提取URI,将其粘贴到XSL转换中,关闭两个文件和然后,最后运行实际的转换.这很有效,但令人难以置信的是,至少根据我的口味.如何更好地处理更改默认命名空间?
皮特