Java 怎么相对于每个元素的uri属性中的所有uri,遍历给定的dom

2019年7月21日19:38:40Java 怎么相对于每个元素的uri属性中的所有uri,遍历给定的dom已关闭评论 373 686字阅读2分17秒

1.简介

Java 怎么相对于每个元素的uri属性中的所有uri,遍历给定的dom?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import org.w3c.dom.*;

import java.net.URI;

public class Main {
    
    public static Node relativizeDOM(Node n, URI baseURI, String attname) {
        if (n == null || baseURI == null)
            return n;
        if (attname == null)
            attname = "uri";
        NamedNodeMap nm = n.getAttributes();
        if (nm != null)
            for (int i = 0; i < nm.getLength(); i++) {
                Attr att = (Attr) nm.item(i);
                if (att.getName().equals(attname)) {
                    String oldAttValue = att.getValue();
                    try {
                        att.setValue(baseURI.relativize(
                                new URI(oldAttValue)).toString());
                    } catch (java.net.URISyntaxException ex) {
                        
                        att.setValue(oldAttValue);
                    }
                }
            }
        for (Node kid = n.getFirstChild(); kid != null; kid = kid
                .getNextSibling())
            relativizeDOM(kid, baseURI, attname);
        return n;
    }
}

 
编程十万个怎么办