如何转换 Java 中的标签
How to transform tags in Java
如何在 Java
中转换下面的标签,我想使用 XTreams Framework
。
帮帮我!我在 Google 搜索中看到。
这个
<?xml version="1.0" encoding="ISO-8859-1"?>
<fastbranch-xe-request project="Tech" transaction-id="massiveSelectBranchList_By_Institution_Facade" transaction-version="1.0">
<entity name="glb.credential">
<attribute name="channelId">8</attribute>
<attribute name="originBranchId">0</attribute>
<attribute name="dependencyId">1000</attribute>
</entity>
<entity id="Institution" name="in.institution">
<attribute name="institutionId">1111</attribute>
</entity> </fastbranch-xe-request>
为此
<?xml version="1.0" encoding="ISO-8859-1"?>
<massiveSelectBranchList_By_Institution_Facade>
<credential>
<channelId>8</channelId>
<originBranchId>0</originBranchId>
<dependencyId>1000</dependencyId>
</credential>
<institution>
<institutionId>1111</institutionId>
</institution>
</massiveSelectBranchList_By_Institution_Facade>
我不知道 XTreams 框架。在 Java 中,通常选择 SAX 或 DOM 进行 XML 解析。
一个简单的例子:
http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/
或者一个好的教程:http://howtodoinjava.com/2014/07/31/java-xml-dom-parser-example-tutorial/
只是为了让您朝着正确的方向前进。如果您在应用本教程时遇到困难,请展示您到目前为止的收获,我很乐意提供帮助。
如果您未绑定到 java,您可以考虑使用 java 的 XSLT。它专为此类任务而设计,而且更短更容易。
希望我能帮到你
雷内克
我同意 reineke 关于使用 DOM 转换初始请求的建议。这是您解析初始请求的一个良好开端:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse("xml");
// optional, but recommended
// read this -
//
doc.getDocumentElement().normalize();
// System.out.println("Root element :" +
// doc.getDocumentElement().getNodeName());
// This breaks the document apart by the specified tag
NodeList nList = doc.getElementsByTagName("fastbranch-xe-request");
// For each instance of the "fastbranch-xe-request" tag...
for (int pos = 0; pos < nList.getLength(); pos++) {
Node nNode = nList.item(pos);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
// This gets you: "massiveSelectBranchList_By_Institution_Facade"
String transactionID = eElement.getAttribute("transaction-id");
// This gets you: "glb.credential"
String entityName = eElement.getElementsByTagName("entity").item(0).
getAttributes().getNamedItem("name").toString();
// Continue this until you've pulled the tag names from each
// "attribute" tag. Once you've pulled all the names (and parsed
// the values as well), you can use DOM to construct the second
// XML request.
}
}
如何在 Java
中转换下面的标签,我想使用 XTreams Framework
。
帮帮我!我在 Google 搜索中看到。
这个
<?xml version="1.0" encoding="ISO-8859-1"?>
<fastbranch-xe-request project="Tech" transaction-id="massiveSelectBranchList_By_Institution_Facade" transaction-version="1.0">
<entity name="glb.credential">
<attribute name="channelId">8</attribute>
<attribute name="originBranchId">0</attribute>
<attribute name="dependencyId">1000</attribute>
</entity>
<entity id="Institution" name="in.institution">
<attribute name="institutionId">1111</attribute>
</entity> </fastbranch-xe-request>
为此
<?xml version="1.0" encoding="ISO-8859-1"?>
<massiveSelectBranchList_By_Institution_Facade>
<credential>
<channelId>8</channelId>
<originBranchId>0</originBranchId>
<dependencyId>1000</dependencyId>
</credential>
<institution>
<institutionId>1111</institutionId>
</institution>
</massiveSelectBranchList_By_Institution_Facade>
我不知道 XTreams 框架。在 Java 中,通常选择 SAX 或 DOM 进行 XML 解析。
一个简单的例子: http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/
或者一个好的教程:http://howtodoinjava.com/2014/07/31/java-xml-dom-parser-example-tutorial/
只是为了让您朝着正确的方向前进。如果您在应用本教程时遇到困难,请展示您到目前为止的收获,我很乐意提供帮助。
如果您未绑定到 java,您可以考虑使用 java 的 XSLT。它专为此类任务而设计,而且更短更容易。
希望我能帮到你 雷内克
我同意 reineke 关于使用 DOM 转换初始请求的建议。这是您解析初始请求的一个良好开端:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse("xml");
// optional, but recommended
// read this -
//
doc.getDocumentElement().normalize();
// System.out.println("Root element :" +
// doc.getDocumentElement().getNodeName());
// This breaks the document apart by the specified tag
NodeList nList = doc.getElementsByTagName("fastbranch-xe-request");
// For each instance of the "fastbranch-xe-request" tag...
for (int pos = 0; pos < nList.getLength(); pos++) {
Node nNode = nList.item(pos);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
// This gets you: "massiveSelectBranchList_By_Institution_Facade"
String transactionID = eElement.getAttribute("transaction-id");
// This gets you: "glb.credential"
String entityName = eElement.getElementsByTagName("entity").item(0).
getAttributes().getNamedItem("name").toString();
// Continue this until you've pulled the tag names from each
// "attribute" tag. Once you've pulled all the names (and parsed
// the values as well), you can use DOM to construct the second
// XML request.
}
}