我正在使用WSO2 BPS 3.2.0,我想将namespace-uri of element分配给string。问题是我在设计时不知道元素名称。
我有XML数据
$.getJSON("{{url_for('test')}}", {val: ui.item.value}, function(data) {
$('#test').text(data.data);
});
我尝试使用XSLT转换来获取命名空间
<message>
<Header xmlns="http://schemas.org/Message"/>
<Body xmlns="http://schemas.org/Message">
<Container xmlns="http://schemas.org/Container/1.0">
<Object>
<document xmlns="http://schemas.org/doc/1.1">dfjgf...ash</document>
</Object>
<Object>
<picture xmlns="http://schemas.org/pic/jpeg/2.0">we54uiytas...h</document >
</Object>
</Container>
</Body>
</message>
它什么都不返回 如果我使用输出方法文本,它将返回xml数据中包含的所有文本。 我错在哪里?
答案 0 :(得分:3)
以下样式表:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:value-of select="namespace-uri(*/*[1])"/>
</xsl:template>
</xsl:stylesheet>
将返回根元素的第一个子元素的命名空间。
在您的示例中,根元素为message
,其第一个子元素为Header
- 因此此处的结果为:
http://schemas.org/Message