簡體   English   中英

比較特定元素的兩個xml文件 - 在java中

[英]comparing two xml files for specific elements — in java

我盡量避免盡可能長時間地問這個問題......但我沒有找到任何能完全符合我需求的東西,而且這是我完成這個項目的時候了。

所以這就是我需要的:

我正在制作一個應用程序,基本上將兩個xml文檔區分開來,然后對其中一個進行微小的更改。 我有一個模板xml,然后另一個xml文件每次都會更改。 我只需要確定模板中的關鍵元素是否在另一個文件中。 可以忽略任何額外的東西,但應添加缺少的關鍵元素。

視覺表現:

模板

<root attribute="asd">
    <a />
    <b>
        <c asdf="fdsa" />
    </b>
</root>

其他xml

<root>
    <a d="wer" />
    <b>
        <c />
    <b>
    <d />
</root>

最后結果:

<root attribute="asd">
    <a d="wer" />
    <b>
        <c asdf="fdsa" />
    </b>
    <d />
</root>

我的問題:

有沒有辦法完成這個最終結果而不費力地經歷每個關鍵元素並確保它們存在? 我已經研究了XPath,這似乎是我迄今為止最好的解決方案,只需檢查是否存在必要的部分,然后添加它們,如果它們不存在(我將創建一個新文件,所以寫入新的元素並不是非常麻煩)。 但是,由於我需要檢查很多東西,我寧願不這樣做。 我還查看了XMLUnit和XOM,但這些似乎更適合比較並告訴我差異(包括添加額外行的地方,我不感興趣)。

那么,實現兩行代碼並讓它神奇地完成自己的任何好主意呢? Cuz那會很棒:)

你應該能夠使用XSLT做到這一點,我想。 不是兩行代碼 - 根本沒有代碼,只是XSLT文件中合並啟發式的合適定義。

查看此處討論和解決的類似問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM