作者:灬耗丨子灬 | 来源:互联网 | 2023-09-16 14:44
I need a regex which will give me one XML tag e.g.
or
我需要一个regex,它将给我一个XML标记,例如
或
So, here if I use <(.)+?>
, it will give me
or
or
. This is fine.
如果我用<(.)+?>,它会给我
或
或
。这是很好。
Now, the problem:
现在的问题:
I have one XML as
我有一个XML as
Here, if you see, PROD_TYPE="COCOG EFI LWL P&C >1Y-5Y"
has a greater than symbol in the value of an attribute.
在这里,如果您看到,PROD_TYPE=“COCOG EFI LWL P&C >1Y-5Y”在属性值中有一个大于符号的值。
So, the regex returns me
所以,regex将返回我
mso - fareast - font - family:宋体' > o: p > span > p
instead of complete
而不是完整的
tahoma; mso - hansi - font - family: tahoma ' > span >
要扩展G_H的链接:不要使用regex解析XML。使用XPath返回一个节点,并将该节点传递给标识转换器:
Node valueElement = (Node)
XPathFactory.newInstance().newXPath().evaluate("//VALUE",
new InputSource(new StringReader(xmlDocument)),
XPathConstants.NODE);
StringWriter result = new StringWriter();
TransformerFactory.newInstance().newTransformer().transform(
new DOMSource(valueElement), new StreamResult(result));
String valueElementMarkup = result.toString();