java:用xslt替换xml文件中的namespace uri string

时间:2015-03-13 14:05:42

标签: java xml xslt namespaces

问题已经改变,我认为这与现有的被认为相似的问题有所不同。

我有一个属性文件,指定旧命名空间和新命名空间之间的映射。例如:http://old-namespace1 = http://new-namespace1。映射是1:1。大概有两百个条目。我可以使用此映射属性文件为旧命名空间和新命名空间构建映射。

对于需要进行此类更改的每个xml文件,我希望将映射文件中所有出现的旧命名空间uri替换为相应的新命名空间uri。

以下是更改前和更改后的xml文件示例。

之前的xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<rootElem xmlns="http://old-namespace1"   xmlns:ns2="http://old-namespace2" xmlns:ns3="http://old-namespace3">
    <childElem xmlns="http://old-namespace4">
      ...
    </childElem>
    ...
</rootElem>

之后的xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<rootElem xmlns="http://new-namespace1"   xmlns:ns2="http://new-namespace2" xmlns:ns3="http://new-namespace3">
    <childElem xmlns="http://new-namespace4">
      ...
    </childElem>
    ...
</rootElem>

我想使用xslt并从java程序调用转换: 1.对于每个xmlns:*,获取其值 2.查找值是否有映射,如果是,则获取映射的新值, 3.输出新值。

我的问题是上面的#2: 我可以在xsl中列出地图。但是如果地图已经存在于另一个文件中,那么在xsl中是否有办法读取文件并获取地图?

0 个答案:

没有答案