【问题标题】:Parsing XML file using Java JSTL library; x:out does not display node-specific data使用 Java JSTL 库解析 XML 文件; x:out 不显示特定于节点的数据
【发布时间】:2011-10-25 00:29:32
【问题描述】:

这是我的 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" />

但它什么也没返回。

知道出了什么问题吗?

【问题讨论】:

    标签: java xml jsp jstl xml-parsing


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。刚刚添加了格式正确的文档作为答案。
    • 显然是命名空间问题?!
    【解决方案2】:

    感谢 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多