我有一个这样的XML:
<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>
我想获得默认名称,例如这个属性xml:lang="x-default"。
I tried to get it as
var name = Product["display-name"].(@["xml:lang"] == "x-default");
但是返回undefined。什么好主意吗?
您缺少名称空间。
- 你需要有一个默认的名称空间,就像你已经为product元素定义了一个名称空间一样。
- 您需要有一个xml命名空间,因为lang属性属于这个命名空间
下面是一些示例代码
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");