我正在使用XSLT将xml写入json解析器。
这是我的xml:
<Item>
<ChildItems>
<Item>
<Id>child-1</Id>
</Item>
<Item>
<Id>child-2</Id>
</Item>
</ChildItems>
<Id>main-1</Id>
</Item>
我尝试获取主要元素的ID(main-1),但我得到了第一个ChildItem(child-1)的Id。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:custom="custom:v1:interop" version="1.0">
...
"Id": "<xsl:value-of select="//custom:Item/custom:Id" />"
...
我无法更改XML,因此请不要将此建议作为解决方案。
谢谢。
答案 0 :(得分:0)
假设您已发布外部Item
为根元素的完整XML,则路径/Item/Id
将选择Id
根元素的Item
子元素。
答案 1 :(得分:0)
我按照你的XSL代码编写了Id和相对XPATH的绝对XPATH,从Item开始。 假设您需要它,我使用您的命名空间自定义。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:custom="custom:v1:interop" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:variable name="myId" select="custom:Item/custom:Id"/>
<xsl:template match="custom:Item">
<root>
using relative XPATH: <xsl:value-of select="custom:Id"/>
using absolute XPATH: <xsl:value-of select="$myId"/>
</root>
</xsl:template>
</xsl:stylesheet>