XML gelenleri bir yerden ayrıştırmak için dom4j 1.6.1 kullanıyoruz. Bazen, balerin ad alanından (örneğin:) bahsetmiştir ve bazen de() değildir. Ve Element.selectSingleNode (String s) çağrısı başarısız olur.Temiz alan kullanımı ile dom4j'yi temizle
Şimdilik biz 3 çözümler var ve biz onlara
1 ile mutlu değil - sadece bir almadan önce ad çıkarın - xml belgesinde
xml = xml .replaceAll("xmlns=\"[^\"]*\"","");
xml = xml .replaceAll("ds:","");
xml = xml .replaceAll("etm:","");
[...] // and so on for each kind of namespace
2 ile bir şey yapmadan önce tüm ad alanı oluşumunu kaldır
Element.remove(Namespace ns)
arayarak düğüm Ama bu bir düğüm ve çocuğun
01 ilk seviye için çalışır oluyor
3 - Yani
node = rootElement.selectSingleNode(NameWithoutNameSpace)
if (node == null)
node = rootElement.selectSingleNode(NameWithNameSpace)
tarafından kod dağınıklığı ... ne düşünüyorsun? Cadıdan biri daha mı kötü? Teklif etmek için başka bir çözüm var mı?
denemek ve boş öneki ile ad hakkında doc kazmak olacak. Yine de teşekkürler. XML dosyasının kaynağı hakkında: herhangi bir şeyi değiştirmenin yolu yoktur. Ancak isim alanı olan veya olmayan dosya geçerlidir. Dosyalarla, sistemimizde kullandığımız nesneleri oluştururuz. Ama asla bir şey "yazmıyoruz". (xml dosyasını değiştirme hakkımız yok) –