1
我們正在對嵌入式/嵌套式XML執行一些操作。我正在使用SAXParser來解析整個XML文件。我想要通過標籤獲取整個嵌套XML和value.For例如我的XML看起來像。如何使用SAX解析器從大型XML文件中獲取嵌入/嵌套XML
我希望整個XML在<ANY_ELEMENT>
..... < /ANY-ELEMENT>
標記。
<?xml version="1.0" encoding="UTF-8"?>
<x:xMessage xmlns:x="http://www.connecture.com/integration/x" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.connecture.com/integration/x xMessageWrapper.xsd
">
<x:xMessageHeader>
<Version>850</Version>
<Source>Source</Source>
<Target>target</Target>
<Timestamp>2013-12-31T12:00:00</Timestamp>
<RequestID>123456</RequestID>
<ResponseID>54321</ResponseID>
<Priority>3</Priority>
<Username>Deepak</Username>
<Password>Kumar</Password>
</x:xMessageHeader>
<x:xMessageBody>
<ANY-ELEMENT>
<xEnveloped_834A1 xsi:schemaLocation="....." xmlns="......."
..........................
..........................
some Complex XML
..........................
..........................
..........................
</ANY-ELEMENT>
</x:XMessageBody>
</x:XMessage>
處理程序類的示例代碼:
public class MessageWrapperHandler extends DefaultHandler {
private boolean bActualMessage = false;
private String actualMessage = null;
private long lengthActualMessage=0;
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if (qName.equalsIgnoreCase("ANY-ELEMENT")) {
bActualMessage = true;
//lengthActualMessage=How to know the length of Child XML
}
}
public void characters(char ch[], int start, int length) {
if (bActualMessage) {
actualMessage = new String(ch, start, length);
//trying to get embedded XML
bActualMessage = false;
}
}
}
但由於下一個元素之後的XML內容,所以給我nothing.SO如何去實現它。 編輯:你可以自由地修改XML <ANY-ELEMENT>
後,如添加內容到CDATA
感謝Blasise您answer.For暫且我只是推杆和 ANY-ELEMENT>入CDATA和相同代碼工作之間的所有數據。 –