{"action":"opened","issue":{"url":"https://api.github.com/repos/rsheets/rexcel/issues/13","repository_url":"https://api.github.com/repos/rsheets/rexcel","labels_url":"https://api.github.com/repos/rsheets/rexcel/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/rsheets/rexcel/issues/13/comments","events_url":"https://api.github.com/repos/rsheets/rexcel/issues/13/events","html_url":"https://github.com/rsheets/rexcel/issues/13","id":158082892,"number":13,"title":"namespace handling","user":{"login":"jennybc","id":599454,"avatar_url":"https://avatars.githubusercontent.com/u/599454?v=3","gravatar_id":"","url":"https://api.github.com/users/jennybc","html_url":"https://github.com/jennybc","followers_url":"https://api.github.com/users/jennybc/followers","following_url":"https://api.github.com/users/jennybc/following{/other_user}","gists_url":"https://api.github.com/users/jennybc/gists{/gist_id}","starred_url":"https://api.github.com/users/jennybc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jennybc/subscriptions","organizations_url":"https://api.github.com/users/jennybc/orgs","repos_url":"https://api.github.com/users/jennybc/repos","events_url":"https://api.github.com/users/jennybc/events{/privacy}","received_events_url":"https://api.github.com/users/jennybc/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-06-02T08:13:05Z","updated_at":"2016-06-02T08:13:05Z","closed_at":null,"body":"`xml2` now makes namespaces easier to deal with. I feel like we should somehow take advantage of this. But am not sure what's best.\r\n\r\nBecause it has also become clear we have namespace problems, if we want to read unusual sheets like the Ekaterinburg sheet, which has alternative namespaces in many parts of the xml. Perhaps the first thing to decide is whether this is really a goal?\r\n\r\n`xml2` good news:\r\n\r\n  * You can simply stop storing and specifying the namespaces, i.e. `ns` now defaults to `xml_ns()` of the input inside `xml_find_*()`.\r\n\r\n  * You can strip default namespaces using `xml_ns_strip()`. Now you don't need, e.g., the `d1` prefix.\r\n\r\n  * You can use `xml_nx_rename()` to provide new prefixes.\r\n\r\nIf we want to accommodate sheets like Ekaterinburg, we could either detect the alternative namespace and rename them or write XPath that avoids the namespaces. In my experimentation, I've done both.\r\n\r\n[Namespace renaming](https://github.com/rsheets/rexcel/blob/d8d62f9eb45931270c245d098806abd556cf5e9e/R/shared_strings.R#L25-L31) re: shared strings\r\n\r\nNamespace avoidance example:\r\n\r\n```\r\nxml2::xml_find_first(xml, \".//*[local-name() = 'sheets']\")\r\n```\r\n"}}
{"actor":{"display_login":"jennybc"}}