2017-05-30 75 views
1

給定一個xpath屬性和一個新值,我正在尋找將屬性值更新爲新值。使用vtd-xml更新屬性值

我按照這裏的例子:http://vtd-xml.sourceforge.net/codeSample/cs7.html並拿出了以下內容:

autoPilot.selectXPath(xpath); 
modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent); 

...我的測試全部通過,但也許是因爲我不習慣的「標記化」的方式,VTD-XML作品,它並沒有「感覺」正確,所以我只是在尋找肯定我做了正確的事情。

回答

0

您的代碼將正常工作...假設您將調用modifier.output()。

但它並不是最佳...

本聲明

modifier.updateToken(vtdNav.getAttrVal(vtdNav.toString(autoPilot.evalXPath())), newContent); 

可以寫成

modifier.updateToken(autoPilot.evalXPath()+1, newContent); 

因爲如果屬性名稱有我的索引值(!= -1),那麼attrinute的值始終是i + 1 ...,因爲attr val緊跟在attr名稱後面。不需要進行條件檢查。