이 프로세스를 자동화하려고 합니다.
이 xml 파일에 대한 링크가 있습니다. 여기에는 많은 매개변수가 있지만 저는 매개변수 중 3개에만 관심이 있습니다. 이 3개의 매개변수를 사용하고 다른 태그 이름을 사용하여 자동으로 새 xml 파일을 만들고 싶습니다.
스크린샷을 참조하세요.
원본 XML 파일.XML 파일
//item/image"
나는 , //item/source/file_details/file
, 및 모두에만 관심이 있습니다 //item/title
.
다른 XML 파일을 자동으로 생성하고 다른 메타 이름을 사용하여 이러한 모든 매개변수를 가져오려면 어떻게 해야 합니까?
Google 스프레드시트에서 가져오기를 시도했지만 importxml
여기에서 XML을 만드는 방법을 모르겠습니다.
최종 결과는 다음과 같아야합니다. `http://blog.defaultroute.com/2011/01/04/building-a-roku-channel-part-2/
감사해요
답변1
트릭을 수행하기 위해 Java 애플리케이션을 작성할 수 있습니다.
예를 들어 필요한 데이터를 읽으려면 다음을 수행하십시오.
File fXmlFile = new File(fileName);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList playlists = doc.getElementsByTagName("playlist"); // Get all Nodes named 'playlist'
if(playlists != null && playlists.getLength() > 0){
for (int temp = 0; temp < playlists.getLength(); temp++) { // Iterate through all 'playlists'
if(playlists.item(temp).getNodeType() == Node.ELEMENT_NODE){ //Check if they are Elements (just to be sure)
Element playlist = (Element) playlists.item(temp); // Cast to Element
NodeList items = playlist.getElementsByTagName("item"); // Get Nodes named 'item' in 'playlist'
for (int temp1 = 0; temp1 < items.getLength(); temp1++) { // Iterate through all items
if(items.item(temp1).getNodeType() == Node.ELEMENT_NODE){
Element item = (Element) items.item(temp1);
NodeList imgs = item.getElementsByTagName("image");
Node img = imgs.item(0); // We suppose there is only one image-node in the item-node
if(img.getNodeType() == Node.ELEMENT_NODE){
Element image = (Element) img;
String imgUrl = image.getTextContent(); // Get the textContent of image --> Store it in an Array(List) etc...
}
}
}
}
}
}
물론 다른 노드에도 동일한 작업을 수행해야 합니다.
그리고 DocumentBuilder를 사용하여 XML 파일로 다시 작성합니다.
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("playlist");
doc.appendChild(rootElement);
Element item = doc.createElement("item");
rootElement.appendChild(item);
Element image = doc.createElement("image");
item.appendChild(image);
image.appendChild(doc.createTextNode("HERE YOUR ImgURL "));
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(fileName));
transformer.transform(source, result);
이것이 조금 도움이 되기를 바랍니다.