如何解析具有&;在Java中使用XPath在其标记名中?
我想解析一个如何解析具有&;在Java中使用XPath在其标记名中?,java,xpath,xml-parsing,Java,Xpath,Xml Parsing,我想解析一个XML,它的标签包含一个&,例如:12.4。我试图逃出&到&但这并没有解决标记名的问题(它只解决了值的问题),目前我的代码引发了一个异常,请参阅下面的完整函数 public static void main(String[] args) throws Exception { String xmlString = "<xml><OC&C>12.4</OC&C></xml>"; xmlString
XML
,它的标签包含一个&
,例如:12.4
。我试图逃出&
到&代码>但这并没有解决标记名的问题(它只解决了值的问题),目前我的代码引发了一个异常,请参阅下面的完整函数
public static void main(String[] args) throws Exception
{
String xmlString = "<xml><OC&C>12.4</OC&C></xml>";
xmlString = xmlString.replaceAll("&", "&");
String path = "xml";
InputSource inputSource = new InputSource(new StringReader(xmlString));
try
{
Document xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource);
XPath xPath = XPathFactory.newInstance().newXPath();
XPathExpression xPathExpression = xPath.compile(path);
System.out.println("Compiled Successfully.");
}
catch (SAXException e)
{
System.out.println("Error while retrieving node Path:" + path + " from " + xmlString + ". Returning null");
}
}
publicstaticvoidmain(字符串[]args)引发异常
{
字符串xmlString=“12.4”;
xmlString=xmlString.replaceAll(&,“&;”);
字符串path=“xml”;
InputSource InputSource=新的InputSource(新的StringReader(xmlString));
尝试
{
Document xmlDocument=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputSource);
XPath=XPathFactory.newInstance().newXPath();
XPathExpression=xPath.compile(路径);
System.out.println(“编译成功”);
}
捕获(SAXE异常)
{
System.out.println(“从“+xmlString+”检索节点路径时出错:“+Path+”。返回null”);
}
}
xml
不能是任何xml元素的名称。因此,无论如何都无法解析XML片段。那你可以试试这样的
<name><![CDATA[<OC&C>12.4</OC&C>]]></name>
12.4]>
xml
不能是任何xml元素的名称。因此,无论如何都无法解析XML片段。那你可以试试这样的
<name><![CDATA[<OC&C>12.4</OC&C>]]></name>
12.4]>
Hmmm。。。我不认为是这样。我想先用正则表达式将OC&C替换成合法的东西,然后再对其进行解析。嗯。。。我不认为是这样。我想先用正则表达式将OC&C替换成合法的东西,然后再解析它。它不是“XML”。这是一个非XML文件。XML不允许在名称中使用符号。因此,使用XML解析器无法成功解析它。它不是“XML”。这是一个非XML文件。XML不允许在名称中使用符号。因此,您无法使用XML解析器成功解析它。如果您可以访问形成XML的脚本,只需添加到标记名实际上您的XML
无效,请阅读如果您可以访问形成XML的脚本,只需添加到标记名实际上您的XML
无效,请阅读关于使用正则表达式处理XML的内容,请看:@Arian我不认为Arawak建议他用正则表达式解析文档。他建议搜索并替换,这是正则表达式非常适合的。然后使用xml解析器进行解析。如果不进行解析,就无法安全地搜索和替换xml文档。关于使用正则表达式处理xml,请参见:@Arian我不认为Arawak建议他使用正则表达式解析文档。他建议搜索并替换,这是正则表达式非常适合的。然后使用xml解析器进行解析。如果不对xml文档进行解析,则无法安全地搜索和替换xml文档。