使用Java JSTL库解析XML文件; x:out不显示特定于节点的数据

时间:2011-08-11 13:52:44

标签: java xml jsp jstl xml-parsing

这是我的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>marco@beirut.co.uk</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" />

它返回:

MyDomainmarco@beirut.co.uk2354MarcowankerMarco 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" />

但它什么也没有回报。

知道出了什么问题吗?

2 个答案:

答案 0 :(得分:1)

您可能遇到名称空间问题。尝试没有命名空间的文档,看看是否有效。

答案 1 :(得分:1)

感谢Michael'O,问题确实来自XML文档本身。

我将XML文档更改为以下内容并且工作正常

<?xml version="1.0" encoding="ISO-8859-1"?>
<User>
    <Domain>MyDomain</Domain>
    <Email>marco@beirut.co.uk</Email>
    <Extension>2354</Extension>
    <FirstName>Marco</FirstName>
    <KnownAs>Marco l'ancien</KnownAs>
</User>