使用Java JSTL库解析XML文件; x:out 不显示特定于节点的数据
这是我的 xml 文件:
<User xmlns="http://schemas.datacontract.org/2004/07/IntranetEFCodeFirst.Objects" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CostCentre i:nil="true"/>
<DeskNo i:nil="true"/>
<Domain>MyDomain</Domain>
<Email>[email protected]</Email>
<Extension>2354</Extension>
<FirstName>Marco</FirstName>
<KnownAs>Marco l'ancien</KnownAs>
</User>
如果我这样做:
<c:import url="http://mydomain.co.uk/myFile.xml" var="xmlDoc"/>
<x:parse xml="${xmlDoc}" var="output"/>
<x:out select="$output" />
它返回:
[电子邮件受保护] l'ancien
我想使用但它不返回任何内容来显示特定于节点的内容
<c:import url="http://mydomain.co.uk/myFile.xml" var="xmlDoc"/>
<x:parse xml="${xmlDoc}" var="output"/>
<x:out select="$output/User/FirstName" />
<x:out select="$output/User/Email" />
。
知道出了什么问题吗?
Here is my xml file:
<User xmlns="http://schemas.datacontract.org/2004/07/IntranetEFCodeFirst.Objects" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<CostCentre i:nil="true"/>
<DeskNo i:nil="true"/>
<Domain>MyDomain</Domain>
<Email>[email protected]</Email>
<Extension>2354</Extension>
<FirstName>Marco</FirstName>
<KnownAs>Marco l'ancien</KnownAs>
</User>
If I do this:
<c:import url="http://mydomain.co.uk/myFile.xml" var="xmlDoc"/>
<x:parse xml="${xmlDoc}" var="output"/>
<x:out select="$output" />
It returns:
[email protected] l'ancien
I want to display a node-specific content using
<c:import url="http://mydomain.co.uk/myFile.xml" var="xmlDoc"/>
<x:parse xml="${xmlDoc}" var="output"/>
<x:out select="$output/User/FirstName" />
<x:out select="$output/User/Email" />
But it returns nothing.
Any idea what's going wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能遇到命名空间问题。尝试一个没有命名空间的文档,看看是否有效。
You are probably experiencing namespace problems. Try a document without a namespace and see if this works.
感谢 Michael'O,问题确实来自 XML 文档本身。
我将 XML 文档更改为以下内容,效果很好
Thanks Michael'O, the issue did come from the XML document itself.
I changed the XML doc to the following and it worked fine