You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by "PJ Fanning (Jira)" <ji...@apache.org> on 2021/09/16 12:14:00 UTC
[jira] [Commented] (XMLBEANS-570) Bookmark are not copied ov
[ https://issues.apache.org/jira/browse/XMLBEANS-570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17416075#comment-17416075 ]
PJ Fanning commented on XMLBEANS-570:
-------------------------------------
Is this a feature that has worked for you in previous versions of XMLBeans. If so, we would probably need to fix this. If this is a feature that never worked, then we can just change the docs to match the actual implementation.
> Bookmark are not copied ov
> --------------------------
>
> Key: XMLBEANS-570
> URL: https://issues.apache.org/jira/browse/XMLBEANS-570
> Project: XMLBeans
> Issue Type: Bug
> Components: Cursor, XmlObject
> Affects Versions: Version 5.0.0
> Environment: UbuntuLinux, XMLBean 5.0.0
> Reporter: Christian Baune
> Priority: Major
>
> Documentation state:
> {quote}The cursors and bookmarks located in the XML that was copied are also copied to the new location.
> {quote}
> It does not copy the bookmark, but moves it.
> It also move the original cursor.
> When running the code bellow, the expected output is:
> {noformat}
> <a>Test 1</a>
> <a>modified</a>{noformat}
> The current output is:
> {noformat}
> <a>Test 1</a>{noformat}
> Code (Kotlin) to reproduce the issue:
> {code:none}
> data class TestBookmark(val key:String): XmlCursor.XmlBookmark(){
> override fun getKey():Any{
> return key
> }
> }
> fun main(){
> @Language("XML") val xml="""<r>
> |<a>Test 1</a>
> |<a>Test 2</a>
> |<a>Test 3</a>
> |<a>Test 4</a>
> |</r>""".trimMargin()
> val xmlObj=XmlObject.Factory.parse(xml)
> val bk=TestBookmark("test")
> xmlObj.newCursor().use { cur->
> cur.advanceTo(QName("a"))
> cur.setBookmark(bk)
> cur.newCursor().use { here ->
> // Per doc: The cursors and bookmarks located in the XML that was copied are also copied to the new location.
> cur.copyXml(here)
> here.textValue="changed"
> }
> }
> xmlObj.newCursor().use { cur->
> while (cur.toNextBookmark("test")!=null){
> // Expect to print <a>Test 1</a> and <a>changed</a>
> println(cur.xmlText())
> }
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org