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:16:00 UTC

[jira] [Updated] (XMLBEANS-570) Bookmark are not copied when you copy cursors

     [ https://issues.apache.org/jira/browse/XMLBEANS-570?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

PJ Fanning updated XMLBEANS-570:
--------------------------------
    Summary: Bookmark are not copied when you copy cursors  (was: Bookmark are not copied ov)

> Bookmark are not copied when you copy cursors
> ---------------------------------------------
>
>                 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