Reputation: 383
I have an XML like this:
<product xmlns="http://www.example-schame.org" product-id="5555555">
<display-name xml:lang="x-default">Default name</display-name>
<display-name xml:lang="en-GB">English Name</display-name>
<display-name xml:lang="it-IT">Italian name</display-name>
</product>
I want to get the default name, e.g. this one with attribute xml:lang="x-default".
I tried to get it as
var name = Product["display-name"].(@["xml:lang"] == "x-default");
but it returns me undefined. Any ideas?
Upvotes: 0
Views: 349
Reputation: 3098
You are missing namespaces.
Here is some sample code
var product = <product xmlns="http://www.example-schame.org" product-id="5555555">
<display-name xml:lang="x-default">Default name</display-name>
<display-name xml:lang="en-GB">English Name</display-name>
<display-name xml:lang="it-IT">Italian name</display-name>
</product>;
default xml namespace = product.namespace();
var xmlns = new Namespace("xml", "http://www.w3.org/XML/1998/namespace");
var name = product["display-name"].(@xmlns::lang == "x-default");
Upvotes: 0