如何修改两个字符串

时间:2019-06-16 19:39:39

标签: java xml string xpath

我有一个看起来像这样的XML

<Books>
    <Book id="CL_ZBBB_PEK_VOR_ABC">
       <bookReference href="BOO_ZB_DZZ_NDB" type="book"/>
       <bookReference href="BOO_ZW_QTV_VOR" type="book"/>
    </Book>
    <Book id="CL_ZWA_QTV_VOR_DME">
        <bookReference href="BOO_ZBAA_IOR_IGP" type="book"/>
        <bookReference href="BOO_ZBAA_IOR_LOC" type="book"/>
    </Book>
</Books>

我需要遍历href元素-在每个2个引用的集合之间进行比较,并比较字符串的最后一部分,例如:

//given    
"BOO_ZB_DZZ_ABC"     
"BOO_ZW_QTV_VOR"    
//want to have result 1    
DZZ/QTV(ABC/VOR)    
In case 2  
//given        
"BOO_ZBAA_IOR_IGH"    
"BOO_ZBAA_IOR_LOC"    
//result 2    
IOR(IGH/LOC)    
In case  3  
//given      
"BOO_ZBAA_IOR_INM"    
"BOO_ZBAA_IOR_INM"     
//result 3    
IOR(INM/INM)    

在每种情况下都忽略BOO_ZBAA,并且如果字符串的第三部分不相同-则用“ /”分隔它们(结果1),如果不是,则只取其中之一(结果2)并将其添加到所有选项中最后3个字母(结果3)中的

我试图进入一个元素-但它只是它的第一步,不知道如何遍历该元素并比较列表中的href值,而不是单个元素,以及如何区分该元素的特定部分和而不是比较它来创建结果字符串(I / Y(A / B)或(I(A / B)

String bookRef                = this.entityElement.getChild("bookReference").getAttributeValue("href");
XPathFactory xpath            = XPathFactory.instance();
XPathExpression<Element> book = xpath.compile("//*[@id='" + bookRef + "']", Filters.element());
Element bookElement           = book.evaluateFirst(entityElement.getDocument());

0 个答案:

没有答案