【发布时间】:2014-09-18 18:21:08
【问题描述】:
我有以下代码来查找所需节点的类型。
private void handleDemote(CalendarCustomization calendar)
{
String name = calendar.getName();
Node node = (Node)reader.read("/APIBusinessObjects/Calendar[Name='" + name + "']/Type", XPathConstants.NODE);
...}
public Object read(String expression, QName returnType)
{
try
{
XPathExpression xPathExpression = xPath.compile(expression);
return xPathExpression.evaluate(xmlDocument, returnType);
}
catch (XPathExpressionException ex)
{
ex.printStackTrace();
return null;
}
}
我要解析的 xml 包含以下内容
<Calendar>
<BaseCalendarObjectId xsi:nil="true" />
<HoursPerDay>8</HoursPerDay>
<HoursPerMonth>173.3</HoursPerMonth>
<HoursPerWeek>40</HoursPerWeek>
<HoursPerYear>2080</HoursPerYear>
<IsDefault>0</IsDefault>
<IsPersonal>0</IsPersonal>
<Name>test'sCal</Name>
getName 函数返回 test'sCal.So name =test'sCal 。 问题在于撇号,因为表达式包含一个额外的引号。它缩短了导致表达式错误的名称。 请提出建议。
【问题讨论】: