2013-03-08 4 views
1

xslt를 기반으로 HTML을 xml로 변환 할 수있는 솔루션을 찾고 있습니다. 예 :XSLT에 따라 HTML을 XML로 변환

HTML :

<p>Name:&#160;<input type="text" name="txtName" id="txtName" ektdesignns_caption="txtName" ektdesignns_name="txtName" title="txtName" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" value="Enter Name" />&#160; 
</p> 

<p>Age:<input type="text" name="txtAge" id="txtAge" ektdesignns_caption="txtAge" ektdesignns_name="txtAge" title="txtAge" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" />&#160;</p> 

<p>Place:<input type="text" name="txtPlace" id="txtPlace" ektdesignns_caption="txtPlace" ektdesignns_name="txtPlace" title="txtPlace" ektdesignns_indexed="false" ektdesignns_nodetype="element" style="" size="24" class="design_textfield" />&#160;</p> 

<p>&#160;Sex:<select name="rbSex" ektdesignns_maxoccurs="1" size="1" id="rbSex" ektdesignns_caption="rbSex" ektdesignns_name="rbSex" title="rbSex " ektdesignns_indexed="true" ektdesignns_nodetype="element" style=""> 
    <option selected="selected" value="0">(Select)</option> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 
    </select><span style="font-size: 12px; line-height: 0;">&#160;</span><br /><br />&#160;</p> 

I 손에 대응하는 XSLT가 [이는 Ektron에서 HTML (a CMS) 인].

<root> 
    <txtName>DemoName</txtName> 
    <txtAge>21</txtAge> 
    <txtPlace>UK</txtPlace> 
    <rbSex>Female</rbSex> 
</root> 

나는이 기능을 수행하는 응용 프로그램의 XMLWrench을 발견 다음과 같은 두 가지에서

가 나는 XML을 원하지만, 나는 더 많은 API를 또는 무언가 같이, C#을 .NET 솔루션이 필요합니다.

편집 II : 나는 또한 xml.eg에 추가 할 수도 형태로 값이 필요합니다 이러한 이름 텍스트 상자에 이름을 존재하는 경우,이 XML 노드

+0

HTML이 유효한 XML인지 완전히 확신합니까? (당신의 질문은 "XML에 XSLT를 적용하는 방법"이어야합니다.) 아니면 HTML -> XML 변환이 먼저 필요합니까? 단순히 "HTML에 해당하는 XSLT"는 XSLT를 HTML에 적용하고 XSLT는 HTML을 구성하는 데 사용하지 않습니다. .. –

+0

@Alexei Levenkov : 내가 틀린 html로 들어 줘서 죄송합니다. 그렇습니다. 현재 HTML이 유효합니다. 제가 언급했듯이, exe XMLWrench는 XML을 제공하지만 웹 솔루션이 필요합니다. 그래서 HTML과 해당 XSLT를 보았습니다. –

+0

겉으로보기에 중복 질문 http://stackoverflow.com/questions/15288559/getting-xml-from-html-by-xslt ... 설명이 다소 혼란 스럽습니다 ... If HTML이 유효한 XML인지 아닌지 (수동으로 수정하는 대신) 대답 할 수 없다면 XSLT가 해당 HTML 및 결과 XML과 어떤 관련이 있는지 적어도 설명하십시오. –

답변

1

정말로 HTML -> XML 페이지로 이동해야한다면 a HTML parser을 사용하고 프로그래밍 방식으로 XML을 만듭니다. 또는 이렇게하면 XSLT/XML 단계를 건너 뛰고 출력 XML을 빌드 할 수 있습니다.

그러나이 질문은 잘못된 접근 방식을 사용하고 있으며 Charles Wesley's answer에 동의합니다. 스마트 양식을 사용하십시오. Ektron HTML 양식은 데이터를 Excel (예 : 간단한 가입 양식)로 내보낼 수있는 간단한 데이터 수집을위한 것입니다.

스마트 양식은 XML로 저장됩니다. Ektron API를 통해 스마트 폼을 만들 수 있습니다.

유용 할 수도있는 스마트 양식과 Ektron HTML 양식을 조합 할 때 여기에 an eGandalf blog post이 있습니다.

편집 코멘트에 대한 응답으로 편집 : 여전히 잘못된 경로를 따르고 Ektron과의 작업을 시도하는 것처럼 들립니다. 어쩌면 API를 살펴볼 수 있을까요? 예 : 캘린더 항목의 경우 calendar API을 사용할 수 있습니다.

솔루션에 대한 희망이 이고 "실제로 Ektron이 실제로하는 방식과 비슷합니다.". Ektron은 XSLT를 사용하여 XML을 HTML로 변환합니다. 이 아니라입니다. Smart Forms 또는 API를 사용하여 구조화 된 데이터를 XML로 가져와야합니다. HTML 컨텐트는 변환이 필요 없거나 최소한이어야합니다 (HTML 변환이 필요한 경우 XSLT가 솔루션이 아닙니다).

양식 제출을 스마트 양식으로 저장하는 경우 eGandalf's blog post을 읽어 보시기 바랍니다. 나는 이것이 당신의 상황을 다루고 있다고 생각합니다.

+0

+1 : 나는 html 구문 분석을 시도했다. 그러나 Ektron에는 관리 할 수없는 calander, 링크, 리소스 등의 다른 컨트롤이 있습니다. 그것은 가능하지만 더 쉬운 방법이 있습니다. Ektron이 실제로 그것을 어떻게하는지 더 좋아. –

2

에 추가한다 Ektron을 사용하는 경우 SmartForm을 사용하여 컨텐트 편집기 용 웹 양식 UI를 만들 수 있지만 XML로 데이터를 저장합니다. XML에 액세스하려면 ContentData 객체를 검색하면 객체의 html 속성이 XML임을 알 수 있습니다.

+0

나는 그것을 얻지 만, 나는 비 Ektron 사이트에서 똑똑한 형식의 XML을 만들 것을 기대하고있다. 즉,이 XML을 생성하면 나중에 그것을 Ektron 사이트의 내용으로 추가 할 수있다. –

3

스마트 폼 구성 HTML에 대해 질문하는 경우 다음 방법을 사용할 수 있습니다.

ContentDesignerWithValidator.ascx의 LoadPackage (m_refContApi, editorPackage) 및 TransformXsltPackage 메서드를 사용하여 html을 xml로 변환합니다.이 페이지는/Workarea/controls/Editor/ContentDesignerWithValidator에 있습니다.ascx

시도해보십시오.